امروز ۰۴ - اردیبهشت - ۰۳

الگو چیست ؟ و تارخیچه آن به کی برمی گردد

الگو چیست ؟ و تارخیچه آن به کی برمی گردد
06 - شهریور - 1399

design patterns
الگو طراحی

الگو چیست ؟

Patterns

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

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

مفهوم الگوی طراحی اولین بار توسط کریستوفر الکساندر در کتاب زبان الگو ها توضیح داده شد . این کتاب یک «زبان» برای طراحی محیط های شهری توصیف میکند .

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

اونها در سال 1994 کتاب الگو های طراحی : عناصر تکرار پذیر برنامه نویسی شیءگرا رو منتشر کردن و در اون ایده ی الگو های طراحی رو به برنامه نویسی وارد کردن. اونها در کتاب طراحی الگوها ۲۳ الگوی طراحی رو توضیح داده بودن که مشکلات زیادی رو در طراحی شیءگرا حل میکرد واون کتاب  به سرعت جزو کتاب های پر فروش شد. کتاب بخاطر اسم طولانیش بعد از مدتی میان مردم به کتاب gang of four و بعد ها به کتاب GoF معروف شد .

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

Design Patterns

الگو طراحی

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

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

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

ساختار الگو های طراحی

(Intent)  خلاصه : یک توضیح کوتاه در مورد مشکل و راه حل اون

(Motivation) انگیزه : یک توضیح جامع تراز مشکی که داریم  و راه حل هایی که این الگوی طراحی برای حل مشکلات ارایه میده

(Structure) ساختار : ساختار عبارت است از کلاس های متفاوت یک الگو و نوع تعامل اون ها با هم

(Code example) نمونه کد : نمونه کدی به یکی از زبان های شناخته شده که به فهم بهتر ایده ی پشت یک الگو کمک میکنه

5/5 - (2 امتیاز)
دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

[bws_google_captcha]

دیدگاه های این نوشته

  • جمشید کاردان گفت:

    توضیحات خیلی مختصر بود. کاش بیشتر بود. البته توضیحات ابتدایش خوب بود.
    من هم یه توضیح مختصر تری اضافه کنم.

    همه کیک درست میکنن هرکی میتونه با قاطی کردن شکر،شیر، تخم مرغ، یه کیک درست کنه.

    اما بعضی ها کیکیشون خوشمزه تره چرا؟؟؟ چون دیزان پترن رو رعایت کردن