Code Module | کد ماژول
1.91K subscribers
357 photos
42 videos
6 files
355 links
Hello World 🌎

<> Earth is programmable if you code it </>

Group 👇🏻
@CodeModuleGap

Contact Us 👇🏻
@MrShahiin
@neoMahan
Download Telegram
الگو طراحی سازنده چیه؟ 🧐

الگو طراحی سازنده یا به عبارت دیگه Builder Design pattern یک الگو Creational و همچنین جزو 23 الگو مهم GoF هست.

به صورت کلی یک الگو طراحی نرم افزاره که برای ساخت اشیاء پیچیده به صورت گام به گام استفاده میشه. همین امر باعثه ترویج سازماندهی بهتر کد، بهبود خوانایی و افزایش انعطاف پذیری در ساخت شئ میشه.

بیاید یک مثال بزنیم!

فکر کنید قرار یک کلاس House بسازیم که این کلاس، یک شبیه ساز از فرایند ساخت خونه هست و قراره در بیشتر موارد ازش استفاده کنیم.
به صورت بیسیک و پایه باید خونه چهاردیوار، یک دَر، یک جفت پنجره و یک سقف داشته باشه. اما اگه یکی مثلا بخواد برای خونه خودش حیاط خلوت، بالکن یا یک طبقه جدید اضافه کنه چی؟

احتملا ساده ترین راه حل گسترش کلاس با پارامتر های زیاده، مثلا :
new House(4،1،true، false......) 

اما در بیشتر موارد پارامتر ها استفاده نمیشن و هر زمان از کلاس House استفاده کنیم کد رو کثیف میکنه.

اینجاست که الگو Builder به کمکمون میاد!

الگو بیلدر میگه فراخوانی متد هارو از constructor به متد build منتقل کنیم، به این صورت :
House builder :

BuildWalls()
BuildDoors()
And....
Build() : House


اینجوری دیگ لازم نیست از پارامتر های زیادی
استفاده کنیم. برای هر خونه متد هارو صدا می‌زنیم و در آخر با صدا زدن متد Build، خونه ساخته میشه

چه زمانی از این الگو استفاده کنیم؟

🔢 ساخت یک شی پیچیده با تعداد پارامتر های بالا.

🔢 هر زمان نیاز به ساخت یک شئ به‌ صورت‌ گام به گام داشتیم.

چه زمانی از این الگو استفاده نکنیم؟

🔵برای اشیایی با تنها چند پارامتر و فرایند ساخت ساده، استفاده از الگو سازنده توصیه نمیشه.

🔵اگه برای شما سرعت در اولویت قرار داره، مراحل اضافی مثل (فراخوانی متد ها) میتونه بر عملکرد تاثیر بزاره و در صورت وجود پترن یا کد بهتر، باید از اون استفاده کنیم.

🔵اگه کلاس Builder با constructor ارتباط داشته باشه، میتونه انعطاف پذیری و نگهداری کد رو کاهش بده که برای نگهداری بهتر از loser coupling استفاد میکنیم.

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


به صورت کلی استفاده از الگو سازنده بستگی به شرایط پروژه داره، و ممکنه در یک پروژه حتی چندین بار ازش استفاده بشه. برای اطلاعات و مثال های بیشتر، میتونید این مقاله رو مطالعه کنید.


#design_pattern #builder
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62