با سلام خدمت شمادوستان ، امیدوارم که خوب باشید. و روزخوبی را آغاز کرده باشید.آیا درمورد design pattern ها اطلاع دارید. اگر خیر با ما همراه باشید.Design Patternها در زمان طراحی سیستم های نرم افزاری و یا فرایند تولید جواب بسیار مورد توجه قرار می گیرد. الگوها سر و صدای زیادی به پا کرده است. از طرفی ممکن است در استفاده از آن ها دچار سردرگمی بشویم. اساساً با سوالات زیر مواجه خواهیم بود:

· Design Pattern چیست؟

· چرا باید از Design Patternها استفاده کنیم؟

· چه زمانی باید از Design Patternها استفاده کنیم؟

· چند الگو وجود دارد؟

در اولین سری از آموزش های Design Pattern سعی خواهیم کرد به این سوالات پاسخ دهیم.
Design Pattern چیست؟

Design Patternها یکسری جواب های ثابت شده به مشکلات رایج در طراحی هستند. به وسیله آنها می توان یکسری راهکار برای حل مسائل بازگشتی در طراحی برنامه تعریف کرد.

به طور واضح، Design Patternها کدهای آماده ای نیستند که بتوان مستقیماً از آن ها استفاده کرد. اما یسکری رویکرد یا نظریه برای حل چالش های عادی طراحی ارائه می دهند.
چرا باید از Design Patternها استفاده کنیم؟

دلیل استفاده از آنها واضح است. چرا باید چرخ را دوباره اختراع کنیم؟ در حالیکه جواب های کاربردی، تست شده و مستند برای یکسری مسائل بازگشتی رایج داریم.

باید از design pattern ها برای طراحی و توسعه اجزاء (componentها) ای استفاده کنیم که مجدداً قابل استفاده و مقیاس پذیر بوده باشند و به تیم برنامه نویسی کمک کنند تا عملیات توسعه در زمان مقرر و با کیفیت بالاتری به انجام برسد.

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

استفاده از Design Patternها بدون ارزیابی صحیح باعث پیچیدگی غیر ضروری الگو می شود. در شرایطی که به آنها احتیاج ندارید می توانید با استفاده از اصول ساده طراحی OOP کار خود را به جلو ببرید.

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

به خاطر داشته باشید که نکته کلیدی در پیدا کردن الگوی صحیح، شناسایی و درک سناریویی است که هر الگویی سعی میکند به آن دست یابد.

به محض اینکه الگوی مناسب برای مسئله یا سناریوی خاص شما مشخص شد، می توانید از آن در طراحی نرم افزار خود استفاده کنید.
چند الگو وجود دارد؟

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

به طور خلاصه، با چند اصل اولیه طراحی نظیر: کد نویسی تمیز (clean coding)، loose coupling و طراحی modular و غیره، طراحی خود را آغاز کنید و چالش های طراحی را با مسائل شناخته شده و موجود در Design Patternها ارزیابی کنید. پس از آن، اگر به الگوی مناسبی رسیدید، ادامه دهید و در غیر اینصورت به همان طراحی خودتان اکتفا کنید.

به عنوان آخرین نکته یادآور می شوم هرگز برنامه خود را مجبور به استفاده از Design Patternها نکنید و تنها زمانی که به آنها نیاز دارید به سراغ آنها بروید.