drefir
drefir
خواندن ۲ دقیقه·۵ سال پیش

Design Patterns

Design Patterns الگوهایی برای طراحی یک نرم افزار‌ توسعه پذیر (Scalable) و قابل نگهداری (Maintainable) می‌باشند.

  • Scalability
    نرم افزار به گونه‌ای طراحی شده باشد که به راحتی قابل گسترش و توسعه در آینده باشد.
  • Maintainable
    میزان قابل فهم بودن و سازگاری با یک ساختار استاندارد در توسعه نرم افزار، که امکان پشتیبانی از نرم افزار را آسان تر می‌کند.

الگو (Pattern) چیست ؟

الگو یک تکه کد مشخصی نیست که در برنامه کپی کنید، بلکه یک راه حل کلی برای حل مسئله ارائه می‌دهد.
اغلب الگوریتم و الگو را با هم اشتباه می‌گیرند.
به این دلیل که هر دو با ارائه راه حل در تلاش برای حل مسئله هستند. الگوریتم برای حل مسئله از یک چارچوب روشن و مشخص پیروی می‌کند.
اما یک الگو در Design Patterns می‌تواند دو راه حل متفاوت ، در دو مسئله مختلف داشته باشد.

اجزای تشکیل دهنده الگو

اغلب الگو ها در Design Patterns به شکل فرمول هستند، به این معناست که هر نفر می‌تواند با الهام گرفتن از ساختار آن، یک الگوی جدید ایجاد کند.
اما به طور کلی یک الگو از بخش های زیر تشکیل می‌شود:

  • Intent
    بیان کننده‌ی مختصر مسئله و راه حل یک الگو.
  • Motivation
    بیان کننده مسئله.
  • Structure
  • بیان کننده ساختار یک الگو و نحوه ارتباط بخش های مختلف.
  • Code example
    آسان کردن فهم الگو، با استفاده در یک زبان برنامه نویسی.

انواع الگوها

  • Creational:‌ وظیفه ساخت اشیا.
  • Structural: چگونگی ترکیب کلاس و اشیا.
  • Behavioral: تمرکز روی ارتباط بین اشیا.

Behavioral همچنان به دو بخش زیر تقسیم می‌شود:
Object Scope این بخش روابط بین اشیا در زمان اجرا (runtime) را مدیریت می‌کند.
Class Scope این بخش روابط بین کلاس ها در زمان کامپایل (compile) را مدیریت می‌کند.


مزایا

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

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

معایب

الگوها (Design Patterns) در بعضی از مواقع نیز می‌توانند برای یک پروژه مضر هم باشند، در زیر به چند مورد از آنها اشاره می‌کنیم.

  • راه حل های ناکارآمد
    انتخاب غلط یک الگو و عدم تطبیق با پروژه.
  • استفاده غیر منطقی
    گاهی یک برنامه نویسی ساده می‌تواند مشکل شما را حل کند و واقعا نیاز به استفاده از این الگوها ندارید.

لیست الگوها (Patterns) به تفکیک نوع

Abstract:‌C

Factory:‌S

Decorator:‌C

Prototype:‌S

Adapter:‌S

Facade:‌S

Proxy:‌S

Bridge:‌C

Factory:‌B

Observer:‌C

Builder:‌S

Flyweight:‌C

Singleton:‌B

ChainOfResponsibility:‌B

Interpreter:‌B

State:‌B

Command:‌B

Mediator:‌B

TemplateMethod:‌S

Composite:‌B

Memento:‌B

Visitor:‌B



سخن آخر و نتیجه گیری

Design Patterns به صورت پیش فرض سودمند و کاربردیست.
زمانی می‌توانید راه حل درست را انتخاب کنید که به تمام الگو ها و ساختار آنها تسلط کافی داشته باشید.

در پست های بعدی، تمام الگوهای فوق را با تمرکز روی جزییات و با ذکر مثال کاربردی بررسی خواهیم داد.


http://dref.ir/design-patterns-part1/

design patternsبرنامه نویسی
سعی می‌کند به نحوه‌ی پیاده‌سازی و همچنین بررسی تخصصی‌ترین مطالب حوزه فناوری اطلاعات بپردازد .
شاید از این پست‌ها خوشتان بیاید