گروه نرم افزاری هیلتن

موضوع کلی: الگو های طراحی

الگوی طراحی Composite



الگوی طراحی Composite الگوی Composite این اجازه را به ما میدهد که یک سلسله مراتب ترکیبی از اشیا داشته باشیم. این الگو یک رابطه بازگشتی را پیاده سازی می کند. این الگو به ما این اجازه را می دهد که یک برنامه را بتوان با ساختار درختی نشان داد. مانند یک سیستم فایل که ساختاری درختی دارد و هر پوشه می تواند دارای گره های داخلی باشد و فایل ها برگ ها را تشکیل می دهند. برای مثال ساختار پرسنلی یک سازمان را در نظر بگیرید که هر کارمند یک پدر دارد و هر کارمند خود می تواند چند زیر کارمند داشته باشد. اگر یک کارمند هیچ گونه زیر کارمندی نداشته باشد یک گره پایانی به حساب می آید.

هدف: تعریف ساختار سلسله مراتب از اشیایی که واسط مشابهی دارند

انگیزه: گاهی لازم است که اشیای با ساختار مشابه را به شکل درختی نگهداری کنیم.

کاربرد:
1- تعریف یک ساختار سلسله مراتبی از اشیا و کار کردن با آن ها
2- کلاینت در گیر مفاهیم اشیای تکی و گروهی نمی شود.
3- ساختاری نسبتا ساده دارد.

ساختار: در زیر نمودار کلاس دیاگرام این الگو نشان داده شده است.

نمودار کلاس دیاگرام الگوی Composite

نمودار کلاس دیاگرام الگوComposite

اجزا:
Component: کلاس مجردی است که ساختار تمام مولفه های ساختار درختی را تعریف می کند.
Leaf: یک برگ از ساختار درختی (یک مولفه تکی) است.
Composite: یک کلاس که گروهی از اشیا است.
الگوهای مرتبط:
Decorator: حالت خاصی از الگوی Composite محسوب می شود.
Visitor: با استفاده از الگوی Visitor می توان روی همه ی مولفه ها یک عملیات اجرا کرد.

پیامد:
• اشیای composite نباید اهمیت بدهند چه نوع شی به آن ها تحویل داده می شود.
• برای این که بتوان ارتفاع یک درخت را در Composite محاسبه کنیم باید ارتفاع همه ی مولفه های زیرین را محاسبه کرد و ماگزیمم آن ها را بر گردانیم

نقاط قوت: 1- ایجاد اشیای منفرد و مرکب بسیار ساده می باشد.
2- ایجاد ساختار درختی را ساده می کند.
نقاط ضعف:
1- اگر تعداد اشیا زیاد باشد کلاس Component سنگین می شود.







گروه برنامه نویسی هیلتن

گروه برنامه نویسی هیلتن