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

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

به طور کلی الگوهای طراحی یا 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

ابتدا کار طراح گرافیک بود و حدود 2 سال و نیم در این حرفه فعالیت داشتم.در زمان دبیرستان علاقه به برنامه نویسی پیدا کردم و الان حدود 8 ساله که با عشق و علاقه دارم به کارم ادامه میدم و همیشه خودم را با پروژه های مختلف به چالش میکشم. تجربه برگذاری چندین دوره آموزش حضوری برنامه نویسی و سئو را نیز دارم.

 

دیدگاه شما