دیزاین پترن ها (Design Pattern)

الگوی دیزاین پترن ها در سی شارپ و دات نت

  • دیزاین پترن چست؟
  • کاربرد دیزاین پترن ها کجاست؟
  • از دیزاین پترن چه زمانی استفاده میشه؟
  • تا امروز چه تعریفی از دیزاین پترن ها تو ذهنتون داشتین؟

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

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

آیا او می تواند از قابلیت “Auto-Save” استفاده کند یا باید حتما روی “Save” کلیک کند؟

فرض کنید شما گزینه auto-save را انتخاب کرده اید. اکنون شما چقدر زمان دارید؟

آیا مجبورید برای فعال سازی گزینه auto-save وارد تک تک صفحات شوید و کامپوننت مربوطه را ایجاد کنید؟ که مسلما در این حالت پتانسیل بروز خطای بالایی وجود دارد.

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

برای مشاهده آموزش Elasticsearch – نصب و راه اندازی کلیک کنید.
دلایل استفاده از دیزاین پترن ها

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

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

نکته ای که طراحان خبره برای حل یک مسئله می ­دانند این است که نباید هر مسئله را از اول حل کرد، یعنی نباید برای حل آن از ابتدای کار شروع کنیم.

روش یافتن بهترین راه حل در حل مسائل مربوط به دیزاین پترن

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

این تجربه، یکی از مسائلی است که آنها را خبره می­ کند. پس در نتیجه شما الگوهایی از کلاس­ها و اشیاء مرتب را در بسیاری از سیستمهای شی ­گرا خواهید دید.

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

کامپوننت ها پایه و اساس پروژه ها هستند. دیزاین پترن مشخص می کند این کامپوننت ها چگونه با یکدیگر کار کنند.

پس جواب سوال زیر مشخص شد :

دیزاین پترن (Design Pattern) چیست؟

دیزاین پترن ها راه حلی برای تکرار شدن مشکلات هستند.


انواع دیزاین پترن:

Design Pattern ها به سه نوع کلی دسته بندی می شوند :

  • خلاقانه (Creational): با توجه به مکانیزم تولید آبجکت
  • ساختاری (Structural): با توجه به ارتباط بین کلاس و آبجکت و نیز پترن بین کامپوننت ها
  • رفتاری (Behavioral): شناسایی پترن ارتباطی بین آبجکت های کلاس


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

لیستی از دیزاین هایی که پوشش خواهیم داد:

دیزاین پترن های سی شارپ و دات نت (C# & .Net Design Patterns):

Abstract Factory Pattern

Builder Pattern

Factory Method Pattern

Prototype Pattern

Singleton Pattern

Adapter Pattern

Bridge Pattern

Composite Pattern

Decorator Pattern

Facade Pattern

Flyweight Pattern

Proxy Pattern

Chain Of Responsibility Pattern

Command Pattern

Interpreter Pattern

Iterator Pattern

Mediator Pattern

Memento Pattern

Observer Pattern

State Pattern

Strategy Pattern

Template Pattern

Visitor Pattern


منبع :

http://2ad.ir/5kG8QF

وب سایت مستر جهان بین