دیزاین پترن چیست؟
👈 دیزاین پترنها راه حلهای هستند برای حل مشکلات رایج در طراحی نرم افزار که مثل نقشههای از پیش ساخته شده که میشه از اونها برای حل یک مشکل در طراحی و حتی کاستومایز کردن اونا بهره برد.
👁 بازدید : 169
1403/2/5 | 15:28 : تاریخ 📆
دیزاین پترنها راه حلهای هستند برای حل مشکلات رایج در طراحی نرم افزار که مثل نقشههای از پیش ساخته شده که میشه از اونها برای حل یک مشکل در طراحی و حتی کاستومایز کردن اونا بهره برد.
در واقع یک قطعه کد خاص نیست که بخواهیم هر جایی ازش استفاده کنیم، بلکه یک مفهوم کلی برای حل یک مشکل خاص است. با این حساب شما می تونید جزئیات یک دیزاین پترن رو مطالعه و دربارش تحقیق کنید و راه حلی متناسب با واقعیتهای برنامه خودتون رو پیاده سازی کنید.
تاریخچه دیزاین پترن:
چه کسی دیزاین پترنها را اختراع کرد؟ جواب این سوال خیلی دقیق نیست. دیزاین پترنها مفاهیم مبهم و پیچیده نیستند - کاملا برعکس. اینها راه حلهای معمولی برای مشکلات رایج در طراحی و توسعه مفاهیم شی گرا هستند. وقتی که یک راه حل بارها و بارها در پروژه های مختلف تکرار میشه، در نهایت کسی نامی برای آن می گذاره و راه حل را با جزئیات شرح میده.
مفهوم دیزاین پترنها اولین بار توسط کریستوفر الکساندر در کتابی برای طراحی: شهرها، ساختمانها و ساخت و سازها توضیح داده شد. این کتاب یک "زبان" برای طراحی محیط شهری توصیف می کند و هر قسمت آن بیانگر یک الگوها هست و ممکن است توصیف کنن که پنجره ها چقدر باید بلند باشن، یک ساختمان چند طبقه باید باشه و غیره.(میتونیم بگیم مثل یک ماکت)
این ایده توسط چهار نویسنده انتخاب شد: Erich Gamma و John Vlissides و Ralph Johnson و Richard Helm.
در سال 1994، آنها کتاب Design Patterns: Elements of Reusable Object-Oriented Software را منتشر کردند که مفهوم دیزاین پترنها رو در برنامه نویسی به کار بردند. این کتاب دارای 23 الگو بود که مشکلات مختلف طراحی و توسعه مفاهیم شی گرا را حل می کرد و خیلی سریع به کتابی پرفروش تبدیل شد. با توجه به نام طولانیش، مردم روش اسم گزاشتن کتاب "گروه چهار نفر" (Gang of Four)
از آن زمان، ده ها الگوی شی گرا دیگر کشف شده است. "رویکرد الگو" در سایر زمینه های برنامه نویسی بسیار محبوب شد، بنابراین بسیاری از الگوهای دیگر در حال حاضر خارج از طراحی شی گرا نیز وجود دارند.
چرا باید الگوها را یاد بگیرم؟
حقیقت اینه که ممکنه شما بتونید سالها به عنوان برنامهنویس کار کنید بدون اینکه حتی یک دیزاین پترن بلد باشید. خب یکسری از از برنامهنویسها اینطورین! اما با این حال، ممکنه بعضی از دیزاین پترنها رو بدون اینکه بدونید پیاده سازی کنید! پس چرا باید وقت خودمون رو صرف یادگیری اینها کنیم؟
دیزاین پترنها مجموعه ابزاری از راه حلهای آزمایش شده و برای مشکلات رایج در طراحی نرم افزار هستن. حتی اگر هرگز با این مشکلات مواجه نشید، دونستن اینها همچنان مفیده چراکه به شما یادمیده که چطور از پس مشکلات در توسعه نرم افزار بربیایید و درواقع یک دید واضح و شفاف در پیش روی شما قرار میده که بتونید بهترین روش برای توسعه نرم افزار خودتون رو پیدا کنید.
دیزاین پترنها یک زبان مشترک را تعریف می کنن که شما و هم تیمیهاتون می تونید برای برقراری ارتباط موثرتر ازش استفاده کنید. میتوانید بگویید: «اوه، فقط با یک سینگلتون کارمون راه میوفته» و همه ایده پشت پیشنهاد شما را درک خواهند کرد. اگر دیزاین پترنها و نام آن را بدونید نیازی به توضیح نیست که سینگلتون چیه.
انواع دیزاین پترنها :
بهطور کلی، دیزاین پترنها به 3 دسته کلی زیر طبقهبندی میشوند:
- Creational Design Patterns - ایجادی :
- برای ایجاد و ساخت نمونههای آبجکت استفاده میشند. درواقع هدف مدریت نمونه سازی از کلاسها هست.نام دیزاین پترنهای این دسته:
- Singleton
- Factory Method
- Prototype
- Abstract Factory
- Builder
- Structural Design Patterns - ساختاری :
- برای ساختاردهی مدیریت روابط کلاسها استفاده میشن و ساختار برنامه رو قابل توسعه و قابل استفاده مجدد میکند.نام دیزاین پترنهای این دسته:
- Adapter
- Decorator
- Facade
- Bridge
- Composite
- Flyweight
- Proxy
- Behavioral Design Patterns - رفتاری :
- برای مدیریت رفتار بین کلاسها استفاده میشوند. هدف مدیریت بر روی رفتار و تعامل بین اجزای سیستم هست و این امکان را میده تا تغییرات در رفتار برنامه رو به صورت انعطافپذیر اعمال کنیم.نام دیزاین پترنهای این دسته:
- Chain of responsibility
- Strategy
- Iterator
- Command
- Mediator
- Memento
- Observer
- State
- Template Method
- Visitor
نتیجه گیری:
این 22 نوع Design Pattern ازسه دسته بالا بوجود میان و هدفشون بهینه کردن و قابل فهم بودن و قابل توسعه بودن برنامه هست که شاید کمی درک کارایی اونها سخت باشه و یا در پیاده سازی کدها به مشکل بخوریم اما درنهایت ما رو تبدیل میکنه به یک توسعه دهنده بهتر و با دانش که الان دیگه دیگه تقریبا اکثر شکرتهای برنامه نویسی به اون احتیاج دارن..
دیزاین پترنها راه حلهای هستند برای حل مشکلات رایج در طراحی نرم افزار که مثل نقشههای از پیش ساخته شده که میشه از اونها برای حل یک مشکل در طراحی و حتی کاستومایز کردن اونا بهره برد.
در واقع یک قطعه کد خاص نیست که بخواهیم هر جایی ازش استفاده کنیم، بلکه یک مفهوم کلی برای حل یک مشکل خاص است. با این حساب شما می تونید جزئیات یک دیزاین پترن رو مطالعه و دربارش تحقیق کنید و راه حلی متناسب با واقعیتهای برنامه خودتون رو پیاده سازی کنید.
تاریخچه دیزاین پترن:
چه کسی دیزاین پترنها را اختراع کرد؟ جواب این سوال خیلی دقیق نیست. دیزاین پترنها مفاهیم مبهم و پیچیده نیستند - کاملا برعکس. اینها راه حلهای معمولی برای مشکلات رایج در طراحی و توسعه مفاهیم شی گرا هستند. وقتی که یک راه حل بارها و بارها در پروژه های مختلف تکرار میشه، در نهایت کسی نامی برای آن می گذاره و راه حل را با جزئیات شرح میده.
مفهوم دیزاین پترنها اولین بار توسط کریستوفر الکساندر در کتابی برای طراحی: شهرها، ساختمانها و ساخت و سازها توضیح داده شد. این کتاب یک "زبان" برای طراحی محیط شهری توصیف می کند و هر قسمت آن بیانگر یک الگوها هست و ممکن است توصیف کنن که پنجره ها چقدر باید بلند باشن، یک ساختمان چند طبقه باید باشه و غیره.(میتونیم بگیم مثل یک ماکت)
این ایده توسط چهار نویسنده انتخاب شد: Erich Gamma و John Vlissides و Ralph Johnson و Richard Helm.
در سال 1994، آنها کتاب Design Patterns: Elements of Reusable Object-Oriented Software را منتشر کردند که مفهوم دیزاین پترنها رو در برنامه نویسی به کار بردند. این کتاب دارای 23 الگو بود که مشکلات مختلف طراحی و توسعه مفاهیم شی گرا را حل می کرد و خیلی سریع به کتابی پرفروش تبدیل شد. با توجه به نام طولانیش، مردم روش اسم گزاشتن کتاب "گروه چهار نفر" (Gang of Four)
از آن زمان، ده ها الگوی شی گرا دیگر کشف شده است. "رویکرد الگو" در سایر زمینه های برنامه نویسی بسیار محبوب شد، بنابراین بسیاری از الگوهای دیگر در حال حاضر خارج از طراحی شی گرا نیز وجود دارند.
چرا باید الگوها را یاد بگیرم؟
حقیقت اینه که ممکنه شما بتونید سالها به عنوان برنامهنویس کار کنید بدون اینکه حتی یک دیزاین پترن بلد باشید. خب یکسری از از برنامهنویسها اینطورین! اما با این حال، ممکنه بعضی از دیزاین پترنها رو بدون اینکه بدونید پیاده سازی کنید! پس چرا باید وقت خودمون رو صرف یادگیری اینها کنیم؟
دیزاین پترنها مجموعه ابزاری از راه حلهای آزمایش شده و برای مشکلات رایج در طراحی نرم افزار هستن. حتی اگر هرگز با این مشکلات مواجه نشید، دونستن اینها همچنان مفیده چراکه به شما یادمیده که چطور از پس مشکلات در توسعه نرم افزار بربیایید و درواقع یک دید واضح و شفاف در پیش روی شما قرار میده که بتونید بهترین روش برای توسعه نرم افزار خودتون رو پیدا کنید.
دیزاین پترنها یک زبان مشترک را تعریف می کنن که شما و هم تیمیهاتون می تونید برای برقراری ارتباط موثرتر ازش استفاده کنید. میتوانید بگویید: «اوه، فقط با یک سینگلتون کارمون راه میوفته» و همه ایده پشت پیشنهاد شما را درک خواهند کرد. اگر دیزاین پترنها و نام آن را بدونید نیازی به توضیح نیست که سینگلتون چیه.
انواع دیزاین پترنها :
بهطور کلی، دیزاین پترنها به 3 دسته کلی زیر طبقهبندی میشوند:
- Creational Design Patterns - ایجادی :
- برای ایجاد و ساخت نمونههای آبجکت استفاده میشند. درواقع هدف مدریت نمونه سازی از کلاسها هست.نام دیزاین پترنهای این دسته:
- Singleton
- Factory Method
- Prototype
- Abstract Factory
- Builder
- Structural Design Patterns - ساختاری :
- برای ساختاردهی مدیریت روابط کلاسها استفاده میشن و ساختار برنامه رو قابل توسعه و قابل استفاده مجدد میکند.نام دیزاین پترنهای این دسته:
- Adapter
- Decorator
- Facade
- Bridge
- Composite
- Flyweight
- Proxy
- Behavioral Design Patterns - رفتاری :
- برای مدیریت رفتار بین کلاسها استفاده میشوند. هدف مدیریت بر روی رفتار و تعامل بین اجزای سیستم هست و این امکان را میده تا تغییرات در رفتار برنامه رو به صورت انعطافپذیر اعمال کنیم.نام دیزاین پترنهای این دسته:
- Chain of responsibility
- Strategy
- Iterator
- Command
- Mediator
- Memento
- Observer
- State
- Template Method
- Visitor
نتیجه گیری:
این 22 نوع Design Pattern ازسه دسته بالا بوجود میان و هدفشون بهینه کردن و قابل فهم بودن و قابل توسعه بودن برنامه هست که شاید کمی درک کارایی اونها سخت باشه و یا در پیاده سازی کدها به مشکل بخوریم اما درنهایت ما رو تبدیل میکنه به یک توسعه دهنده بهتر و با دانش که الان دیگه دیگه تقریبا اکثر شکرتهای برنامه نویسی به اون احتیاج دارن..
هنوز دیدگاهی ثبت نشده