اكتشف أسرار نموذج التصميم المجمع

هذا النموذج بالرغم من تعقيد اسمه الا انه نموذج بسيط جدا. يستخدم هذا النموذج لاجراء عملية ما على مجموعة كبيرة من العناصر بدون معرفة عددها فمهما كان العدد سيستمر النموذج في تنفيذ العملية إلى انتهاء العدد. وتتكون تلك العناصر من صنفين الأول يكون حاوية ويحتوي على عناصر اما من نفس نوعه أو من نوع قابل للتشغيل.

نموذج المجمع composite يتكون من عنصرين هما الـ Composites و الـ Component وكلاهما يكون مشتق من نفس الواجهة وفي معظم الأوقات التعامل مع الـ Composites يكون غرضه هو كيفية الوصول للـ Component.

مثال بسيط: المقلب القديم الذي تحضر فيه هدية لاحد الأشخاص عبارة عن صندوق وبداخله صندوقين اخرين وكل صندوق من الصناديق داخلها صندوقين اخرين وهكذا إلى ان تصل إلى اخر الصناديق ويكون بها شئ تستطيع ان تستخدمه استخدام اخر بخلاف ان تقوم بفتحه لتبحث فيه.

هذا بالضبط مفهوم نموذج المجمع composite pattern. مثال عملي:قمنا اولا بعمل الواجهة واسميناها component وهذا الواجهة سنشتق منه صفين نعمل عليهما اولهما هو Leaf وهو العنصر الأصغر الذي يتكون منه العنصر الثاني وهو Composite. كما نرى الصف leaf به عدة دوال لا تعمل وهي خاصة بالصف composite فلن تستطيع في دالة الـ Addchiled ان تضيف الا إذا كنت في صف الـ composite. اما عن دالة Traverse فهي تقوم بعرض القيمة إذا كنت تعرض صف leaf وتقوم باعادة استدعاء نفسها recursive.

قراءة المقال الكامل على ويكيبيديا ←