الگوی طراحی Abstract Factory

  • شماره مطلب : 3
  • دسته بندی : الگو های طراحی نرم افزار
  • عنوان : الگوی طراحی Abstract Factory
  • نویسنده : NetBoss
  • پیش نیاز : Factory الگوی طراحی

در روش Factory دیدم که هدف، ساخت آبجکت از دسته ای از کلاس ها، بدون افشا شدن نحوه آبجکت گیری از آنها بود. (برای فهم الگوی طراحی Abstract Factory ابتدا میبایست الگوی طراحی Factory را بیاموزید.)  همچنین فهمیدیم که با استفاده از این تکنیک از درگیر شدن Client (که در این مثال برنامه نویس UI میباشد) با پیچیدگی ساخت آبجکت بیزینسی جلوگیری به عمل آمده ، وابستگی کاهش یافته و سرعت توسعه افزایش خواهد یافت. حال در الگوی طراحی Abstract Factory این دیدگاه را توسعه داده و سعی میکنیم برای Package  های مختلف Factory های جداگانه ای داشته باشیم که تمامی این Factory ها از طریق یک کلاس Abstract  که اصطلاحا به آن Super Factory میگویند قابل دسترس باشند. مثال و دیاگرام زیر نحوه پیاده سازی الگوی طراحی Abstract Factory   را برای دو مجوعه محصولات و مشتریان نمایش میدهد. در مثال زیر دو Factory یکی برای پکیج محصول و دیگری برای پکیج مشتری وجود دارد. برای رسیدن کلاینت به فکتوری مناسب، و از فکتوری به آبجکت مورد نظر کلاس Abstract super factory استفاده میشود که در روندی مشخص، ما را از کد کلاینت به آبجکت نهایی خواهد رساند.

مثال : در الگوی طراحی Factory توضیح دادیم که برنامه نویس بیزینس و برنامه نویس UI برای کاهش وابستگی به یکدیگر و افزایش سرعت توسعه بر روی قرار دادی از جنس یک Interface به نام ICustomer با یکدیگر به توافق رسیده و وظیفه ساخت کلاس های پیاده سازی کننده این Interface را بر عهده کلاس Factory  گذاشتند. در این مثال علاوه بر مفهوم بیزینسی مشتری که در مثال قبل توضیح دادیم مفهوم بیزینسی دیگر به نام محصولات نیز اضافه شده است. این یعنی این که کلاس ها و دسته بندی های بیزینسی ما افزایش یافته که برای هر کدام به Factory های جداگانه ای نیاز خواهیم داشت.  این محصولات به دو دسته زنانه و مردانه تقسیم بندی میشوند. برای هر یک از این دو نوع محصول کلاس های جداگانه ای در نظر گرفته ایم که به علت تشابه در رفتار هر دو Interface ی را به نام IProduct پیاده سازی نموده اند. پس همانطور که واضح است ما در این مثال به دو Factory برای رسیدن به آبجکت های مورد نظر خودمان نیاز داریم. یکی برای محصولات و دیگری برای مشتریان. برای ساخت این دو Factory دو کلاس ایجاد خواهیم کرد که هر دو از کلاس Abstract به نام Supper Factory ارث بری مینمایند. نتیجتا از سمت کد کلاینت میتوان در مرحله اول به Factory مناسب و از آنجا به آبجکت مورد نظر دست یافت. این مثال پیاده سازی الگوی طراحی Abstract Factory را به وضوح نشان میدهد.

الگوی طراحی Abstract Factory
برای افزایش وضوح در تب جداگانه ای باز شود

 

 

Add a Comment

Your email address will not be published. Required fields are marked *

Copy Protected by Chetan's WP-Copyprotect.