sorkhemiri | سرخه میری
sorkhemiri | سرخه میری
خواندن ۲ دقیقه·۴ سال پیش

الگوی طراحی چیست و چرا؟

Alexander Shvets  کتاب drive into Design Patterns اثر
Alexander Shvets کتاب drive into Design Patterns اثر


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

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

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


الگو های طراحی از چه قسمت هایی تشکیل شدن؟

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

  • خلاصه (Intent) : یک توضیح کوتاه در مورد مشکل و راه حل اون
  • انگیزه (Motivation): یک توضیح مفصل تر از مشکل و راه حلی که این الگوی طراحی برای حل مشکل ارایه میده
  • ساختار (Structure): ساختار کلاس های مختلف یک الگو و نوع ارتباط اون ها با هم
  • نمونه کد (Code example): نمونه کدی به یکی از زبان های شناخته شده که به فهم بهتر ایده ی پشت یک الگو کمک میکنه.

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

تو قسمت های اینده در مورد انواع الگو های طراحی و توضیحات هر کدوم صحبت میکنیم.
منبع: refactoring guru

نرم افزارdesign patternssoftwareclean codecode
اینجا قراره در مورد چیز هایی حرف بزنیم که یه برنامه نویس درست و حسابی باید بدونه (پیش فرضمون اینه سینتکس و روش های معمول رو همه جا میشه پیدا کرد) و گاهی هم چیز های با حال بسازیم یا معرفی کنیم
شاید از این پست‌ها خوشتان بیاید