مهدی ساعدی
مهدی ساعدی
خواندن ۲ دقیقه·۳ سال پیش

شیرجه عمیق تو دیزاین پرتن

اولین سوالی که احتمال ذهنمونو درگیر کرده اینه که ...

دیزاین پترن چیست؟

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

دیزاین پترن یه تیکه کد خاصی نیست، بلکه مفهوم کلی برای حل یک مشکل خاص است، ما میتونیم جزئیات دیزاین پترن رو پیاده سازی کنیم یا راه حلی متناسب با برنامه خودمون پیاده سازی کنیم.

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

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

بزارید با یه مثال بگم.

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

دیزاین پترن از چه چیزی تشکیل شده است؟

بیشتر دیزاین پترن ها خیلی رسمی توصیف شدن. بنابراین میتونید اونها رو در بسیاری از موارد بازنویسی کنید. دیزاین پترن ها فقط یه الگو برای حل مشکلات ههستند که میتونید دو یا چند الگورو با هم ادغام کنید تا مشکل خودتون رو حل کنید.

چرا باید دیزاین پترن ها رو یاد بگیریم؟

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

  • دیزاین پترن ها یه زبان مشترک رو تعریف میکنند که شما و هم تیمی هایتان می توانید از ان برای برقراری ارتباط موثر تر استفاده کنید. میتوانید بگید: «اوه، فقط از یک Singleton برای آن استفاده کن» و همه ایده پشت پیشنهاد شما را درک خواهند کرد. اگر دیزاین پترن و نام آن را بدانید نیازی به توضیح نیست که singleton چیست.
  • دیزاین پترن ها مجموعه ابزاری از راه حل های آزموده شده برای مشکلات رایج در برنامه نویسی هستند. حتی اگر هرگز با این مشکلات روبرو نشوید، دانستن دیزاین پترن ها همچنان مفید است زیرا به شما می آموزد که چگونه با استفاده از اصول طراحی شی گرا، انواع مشکلات را حل کنید

اینو یادت باشه: میتونی یه دایره بدون استفاده از پرگار بکشی ، برنامه نویسی ام دقیقا همینه میتونی بدون بلد بودن دیزاین پترن ها برنامه نویس بشی ولی میتونی با دیزاین پترن ها یه برنامه نویس اصولی بشی و به کمتر مشکلی بخوری.

چند تا دیزاین پترن داریم؟

ما 23 تا دیزاین پترن داریم به نام های:

  • Factory Method
  • Abstract Factory
  • Builder
  • Prototype
  • Singleton
  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template Method
  • Visitor
  • Chain of Responsibility
  • Command
  • Interpreter

مرجع: کتاب Dive Into Design Pattern

برنامه نویسیدیزاین پترنسینگلتونsingletondeveloper
شاید از این پست‌ها خوشتان بیاید