الگو های طراحی چیست؟

الگو های طراحی چیست؟

به طور کلی الگوهای طراحی یا Design Patterns ها مجموعه ای از راهکار و روش های برنامه نویسی هستند که به برنامه نویس کمک میکنند تا یک برنامه رو با بهترین  ساختار و روش پیاده سازی کند.
در واقع دیزاین پترن ها در جزئیات کلی برنامه دخالتی نمیکند و در اصل مربوط به نحوه پیاده سازی کدها میباشد.
در واقع دیزاین پترن ها کدی نیستند که به تنهایی اجرا شوند، بلکه رویکردی برای حل مشکلات به وجود آمده در برنامه میباشد.
دیزاین پترن ها یک کلاس ، تابع یا کتابخانه ای نیست که ما از آنها در کد هایمان استفاده کنیم ، بلکه میشه گفت یک  قالب میباشد که باید در شرایطی و مکان مناسب از آنها استفاده کنیم.
دیزاین پترن ها مختص یک زبان برنامه نویسی خاص نمیباشد و شما میتوانید برای هر زبان برنامه نویسی از آنها استفاده کنید.
الگو های طراحی زیادی وجود دارند که معرف ترین های آنها با عبارت GoF شناسایی میشوند که انواع به خصوصی دارد و عبارتند از :

  • الگو های تکوینی یا سازنده (Creational Patterns)
  • الگو های ساختاری (Structural Patterns)
  • الگو های رفتاری (Behavioral Patterns)

الگو های تکوینی یا سازنده (Creational Patterns)

این الگو ها به ساخت اشیاء و ارجاع به آنها مربوط میشوند.

متداول‌ترین دیزاین پترن‌های سازنده عبارتند از :

  • Singleton
  • Factory Method
  • Prototype
  • Abstract Factory
  • Builder
  • Object Pool

الگو های ساختاری (Structural Patterns)

این الگو ها روابط بین اشیاء و مشارکت آنها برای ساخت اشیاء پیچیده تر میباشد.

متداول‌ترین دیزاین پترن‌های ساختاری عبارتند از :

  • Adapter
  • Decorator
  • Facade
  • Bridge
  • Composite
  • Flyweight
  • Proxy

الگو های رفتاری (Behavioral Patterns)

این الگو ها به ارتباط بین اشیاء به ویژه از دیدگاه مسائل و الگوریتم مربوط میشود.

متداول‌ترین دیزاین پترن‌های رفتاری عبارتند از :

  • Chain of responsibility
  • Strategy
  • Mediator
  • Command
  • Iterator
  • Memento
  • Observer
  • State
  • Template Method
  • Visitor

 

 

به اشتراک گذاری :

رامین رضایی

رامین رضایی

dev.raminrezaei@gmail.com

رامین رضایی هستم برنامه نویس و طراح وب و اپلیکیشن موبایل

فعالیتم در حوزه برنامه نویسی را از سال 1392 شروع کردم و از سال 1394 به صورت حرفه ای کار میکنم.

برخی از فعالیت های من :

  • برنامه نویسی و طراحی اپلیکیشن موبایل
  • برنامه نویسی و طراحی وب سایت
  • بهینه سازی وب سایت (SEO)
  • طراح گرافیک
  • و...

 

دیدگاه شما