يفيد هذا النموذج في بعض الحالات التي تستخدم فيها كائن صغير وكثير فلإستهلك كثيرا من المصادر ويكون من المفضل وقتها ان نجمع كل هذه الكائنات الصغيرة في كائن واحد كبير أو اقل عدد ممكن من الكائنات الكبيرة نوعا ما هو اوفر على النظام من كائنات كثيرة صغيرة.هذا النموذج يقوم على تقسيم الكائنات إلى intrinsic data و extrinsic data والجزء الأول يكون للوظائف الداخلية للصف ولا يمكن فصلها عن الكائن اما الجزء الثاني فهي الوظائف التي من الممكن ان تفصلها عن الصف وتخزن خارجه وبذلك يمكننا ان نستبدل جميع الاجزاء المتشابهه في الجزء الداخلي واستبدالها بكائن واحد. وهناك جزء اخر يدير عملية التاكد من عدم وجود الكائن قبل انشائه أي يتاكد اننا لم ننشأ intrinsic data مطابقة من قبل وفي حالة اننا انشئناها من قبل يقوم باستخدامها في إنشاء الكائن الجديد بدلا من إنشاء intrinsic data جديدة.
Client: يدير ويعمل على إدارة الوظائف الداخلية للكائن.
IFlyweight: واجهة يستخدم في إنشاء البيانات الداخلية للكائنات intrinsic State.
FlyweightFactory: إنشاء وإدارة الاجزاء الفريدة من نوعها data intrinsic.
Flyweight: تخزين وانشاء ومشاركة الكائنات المتشابهة بين الكائنات.