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

  1. Creational : الگوهایی که برای ساختن و ایجاد کلاس ها و اشیا (به صورت صحیح) استفاده میشوند که مهمترین اینها شامل موارد زیر هست:
    1. Abstract Factory Pattern
    2. Builder Pattern
    3. Factory Method Pattern
    4. Prototype Pattern
    5. Singleton Pattern
  2. Structural : این نوع از الگوها برای برطرف کردن مشکلات ساختاری استفاده از کلاس ها، تبدیل اشیا به یکدیگر و … می پردازد:
    1. Adapter Pattern
    2. Bridge Pattern
    3. Composite Pattern
    4. Decorator Pattern
    5. Facade Pattern
    6. Flyweight Pattern
    7. Proxy Pattern
  3. Behavioral : این الگوها برای ایجاد ارتباط صحیح بین کلاس ها و اشیاء استفاده میشوند و مشکلات مربوط به این ارتباطات را برطرف می سازند:
    1. Chain of responsibility
    2. Command Pattern
    3. Interpreter Pattern
    4. Iterator Pattern
    5. Mediator Pattern
    6. Memento Pattern
    7. Observer Pattern
    8. State Pattern
    9. Strategy Pattern
    10. Template Method Pattern
    11. Visitor Pattern

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

محمد باقر رستمی

برنامه نویسی رو دوست دارم و از کارم و بیشتر از اون از یادگرفتن لذت می برم. دوست دارم از این طریق برای مردم دنیا مفید باشم. فارغ از رنگ، نژاد، ملیت و جنسیت.

Latest posts by محمد باقر رستمی (see all)

facebooktwittergoogle_pluslinkedin

یک نظر در رابطه با “الگوهای طراحی چیست؟

دیدگاه

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

*

*