الگوی factory method

الگوی factory method

دیزاین پترن‌ها یا الگوهای طراحی به مجموعه‌ای از راه‌حل‌ها برای مشکلات متداول و پیش‌بینی شده میگویند که افراد حرفه‌ای در برنامه‌نویسی از آنها استفاده می‌کنند که 23 الگو معروف داریم که هرکدام راه حلی برای مشکلی هستند این 23 الگو توسط 4 نفر معروف به gang of four جمع‌آوری شده‌اند.

که در دوره دیزاین پترن ها در سی شارپ سایت باگتو  این 23 الگو را بصورت کامل آموزش داده ایم و توصیه می کنم برای دیدنآموزش دیزاین پترنحتما این دوره رو ببینید.

در این مقاله مقدمه‌ای از الگوی factoryکه به آن الگوی کارخانه‌ها هم به او گفته می‌شود را آموزش می‌بینیم.

 

 

 

 در مقاله کدام دیزاین پترن ها در برنامه نویسی معروف هستند؟ دیزاین پترن های معروف رو معرفی کردیم که الگوی factory method  جز این دسته از الگوها قرار دارد. 

 

چه زمانی از این الگوی Factory Method استفاده می‌کنیم و کاربرد آن چیست؟

در برنامه‌ها interfaceهایی داریم که پیاده‌سازی‌های مختلفی از آن انجام شده و می‌بینیم که نمونه‌سازی‌های ما در کد پخش شده‌اند و بسیار نامرتب پخش شده‌اند است بصورتی که  مدیریت‌کردن آن سخت می‌شود و اگر بخواهیم تغییری در نمونه‌سازی ایجاد کنیم باید کل کدها را جستجو کنیم یا اگر تغییری در کانستراکتور به وجود آید باید کل نمونه‌ها را در کل کد ها تغییر دهیم و مشکلاتی ازاین‌قبیل برای ما به وجود می‌آیند. برای رفع این مشکلات الگوی factory method ساخته شد که کار این الگو این  است که همه نمونه‌های ما را در یک کلاس جمع می‌کند و آن کلاس می‌شود کلاس مدیریت نمونه‌ها و می‌توان به‌راحتی نمونه‌ها را مدیریت کرد و این کلاس مسئول نمونه‌سازی از کلاس‌های دیگر است.

زمانی که نمونه سازی از کلاس هایی در جاهای مختلف برنامه انجام می شود.

زمانی که برای کلاینت نوع کلاس های نمونه سازی اهمیتی نداشته باشد.

 

 

بررسی UML الگوی Factory Method

factory method

 

 

 

این الگو umlهای مختلفی با تغییرات جزئی دارد اما تصویری که بیشتر از آن استفاده می‌شود این تصویر است که در ادامه باهم این uml  را بررسی می‌کنیم.

همان‌طور که می‌بینیم یک کلاس abstract  به نام product داریم که منظور از آن کلاس interfaceیا سرویس ما است.

برای این کلاس abstract پیاده‌سازی‌های مختلفی می‌توانیم داشته باشیم که در این uml  دو پیاده‌سازی داریم با نام‌های  Concrete product 1 ,concrete product 2 پس دو پیاده‌سازی برای انتزاع خود داریم.

حالا در حالت عادی مستقیماً از این پیاده‌سازی‌ها نمونه‌سازی می‌کردیم و یا با استفاده از تزریق وابستگی از این پیاده‌سازی‌ها و انتزاع خود استفاده می‌کردیم.

اما زمانی که از الگوی کارخانه استفاده می‌کنیم یک کلاس abstract دیگر ایجاد می‌کنیم که کارش نمونه‌سازی از پیاده‌سازی‌ها است که در uml نام آن Creator است

این کلاس creatorدرون خود یک متد دارد به نام factory method  که خروجی آن از نوع کلاس انتزاع ما است(product) و سپس می‌آییم یک پیاده‌سازی برای این کلاس creatorایجاد می‌کنیم و درون آن پیاده‌سازی متد factory methodرا پیاده‌سازی می‌کنیم و بر اساس هر شرایطی تصمیم می‌گیریم که از کدام نمونه‌سازی کلاس انتزاع خود استفاده کنیم و مثلاً کلاینت می‌تواند با استفاده از متدی که شما طراحی کرده‌اید و ورودی دارد انتخاب کند که می‌خواهد از کدام نمونه‌سازی استفاده کند.

Concrete product 1یاconcrete product 2  و در برخی مواقع کلاینت برایش فرقی ندارد که از کدام نمونه سازی استفاده کند و ما در پروژه بر اساس سیاست های پروژه تصمیم میگیریم که از کدام نمونه به کلاینت بدهیم.


نقاط قوت الگوی factory method

  1. کاهش اتصال محکم و وابستگی ها
  2. رعایت اصل DIP
  3. متمرکز سازی ایجاد در یک مکان
  4. راحتی اعمال تغییرات

 

نقاط ضعف الگوی factory method

  1. پیچیدگی کدها

 

امیدواریم که تا حدقابل قبولی شما را با الگوی factory method آشنا کرده باشیم اما دیزاین پترن ها موضوع بسیار گسترده‌ای است پس پیشنهاد می‌کنیم که حتماً دوره دیزاین پترن ها در سی شارپ که تمامی 23 دیزاین پترن به‌صورت کامل آموزش‌داده‌شده است رو حتما ببینید.

 

 

 

 

 

جدیدترین ویدئوهای آموزشی

در بخش TV باگتو، آموزش های کوتاه و جدید را مشاهده نمایید

0 نظرات

برای ارسال نظر باید وارد حساب کاربری خود شوید
ورود به حساب کاربری ثبت نام