/آشنایی با الگوهای طراحی در برنامه نویسی
الگوهای برنامه نویسی

آشنایی با الگوهای طراحی در برنامه نویسی

الگوهای طراحی یا همان Design Pattern ها روشی هستند که باعث می شوند ساختار پروژه ما ساده , قابل گسترش و موثر تر باشند.

در واقع برای اینکه شما یک برنامه نویس حرفه ای باشید علاوه بر مهارت های برنامه نویسی و کدنویسی نیاز دارید که یک سری مهارت های جانبی نیز بلد باشید که استفاده از معماری و الگوی طراحی مناسب یکی از آنهاست.

دیزاین پترن ها به ما در حل مشکلات برنامه نویسی و اضافه کردن قابلیت استفاده مجدد از کد ها کمک زیادی می کنند.

الگوهای برنامه نویسی
آموزش Flutter

الگوهای طراحی پرکاربرد شامل موارد زیر می باشد:

  1. Builder pattern
  2. Prototype pattern
  3. Factory Method pattern
  4. Abstract Factory pattern
  5. Singleton pattern

در ادامه مطلب به بررسی کوتاهی از هر یک از الگوها میپردازیم.

Builder pattern

در این الگو سعی شده از که متد های سازنده پیچیده اجتناب شود. در واقع باید برای اینکار متد های سازنده یا همان Constructor هایی که پارامترهای ورودی زیادی دارند را بیخیال بشید. پارامتر های زیادی انعطاف پذیری کدهای کلاس شما را کم می کنند و باعث سردرگمی می شوند.

برای مثال یک کلاس Person داریم که فیلد های زیادی مانند اسم,سن, رنگ مو,نام خانوادگی,شغل, نام پدر و مادر و … دارد اگر یک متد سازنده برای این کلاس ایجاد کنید پارامتر های فوق العاده زیادی نیاز هست, یکی از روش های جلوگیری از این کار ساختن متد های سازنده مختلف هست.

برای مثال شما یک آبجکت از کلاس Person قرار هست بسازید ولی فقط میخواهید دوتا از فیلد های اسم و سن را مقداری دهی کنید که ساختن متدهای مختلف اینجا برای شما کاربرد دارد.

البته روش بالا مشکلاتی هم دارد که یکی از آنها ساختن تعداد زیادی کانستراکتور هست به این الگو
telescoping constructor می گویند.

با استفاده از Builder Pattern این ساختار پیچیده و ساده تر می میکنیم.
Builder Pattern به ما کمک میکنه که آبجکت های پیچیده خودمون با ساختن آبجکت های ساده تر ایجاد کنیم.

Prototype pattern

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

زمانی که ساختن یک آبجکت جدید باعث مصرف مموری شود پروتوتایپ به کمک ما می آید که باعث می شود برنامه سریعتر و کدها کمتر شوند.

Factory

از الگوی فکتوری زمانی استفاده میکنیم که میخواهیم یک آبجکت بسازیم ولی دقیقا نمیدانیم که ماهیت این آبجکت چه چیزی است.

در این روش یک واسط که میتواند اینترفیس یا کلاس abstract باشد با Factory Method در ارتباط است که نقش کلاس آبجکت های مارا تعیین می کند.

Singleton 

زمانی که نیاز دارید تا مطمئن شوید از کلاسی که در اختیار دارید فقط یک آبجکت ساخته خواهد شد از الگوی سینگلتون استفاده می کنیم.

برای مثال کلاسی دارید که به دیتابیس متصل می شود و یا یک راه ارتباطی با منابع خارجی مثل پرینتر هست و میخواهید فقط یک آبجکت به این کارها دسترسی داشته باشد.