با توجه به اینکه الگوهای طراحی زیادی وجود دارند، چگونه میتوانید مناسبترین الگوی طراحی را برای حل مسئله خود انتخاب کنید و مهمتر اینکه چگونه آن را اعمال نمایید؟ برای پاسخ به این سوال، رهنمودهای زیر را همیشه در نظر داشته باشید:
- شما نمیتوانید یک الگو را به کار بگیرید مگر آنکه آن را به خوبی فهمیده باشید. بنابراین در اولین گام باید اصول و الگوهای طراحی را هم به شکل انتزاعی و هم به شکل واقعی خوانده و تمرین کنید. دقت کنید که یک الگو را به شکلهای مختلفی میتوان پیاده سازی کرد. هر چه پیاده سازیهای بیشتری ببینید، به هدف و چگونگی استفاده از آن بهتر مسلط میشوید.
- آیا میخواهید با استفاده از یک الگوی طراحی، برنامه خود را پیچیدهتر کنید؟ این معمول است که توسعه دهندگان برای حل هر مسئله از الگوهای طراحی استفاده میکنند. ابتدا هزینه و فایده پیاده سازی یک الگو را ارزیابی کرده، سپس اقدام به استفاده کنید. همیشه قاعده KISS را به خاطر داشته باشید.
- مسئله خود را تعمیم دهید. پیامدهای مسئله خود را با دید انتزاعی و سطح بالا بررسی کنید. به یاد داشته باشید که الگوهای طراحی، راه حلهای سطح بالا برای مسائل سطح بالا هستند. بنابراین روی پیامدهای جزئی یا وابسته به دامین مسئله خود تمرکز نکنید.
- به الگوهای مشابه و هم گروه نگاه کنید. اگر قبلا از یک الگو استفاده کردهاید بدین معنی نیست برای هر مسئلهای آن الگو درست است.
- هر چیزی که تغییر میکند را بسته بندی کنید. ببینید که چه چیزی در برنامه کاربردی شما ممکن است تغییر کند. اگر شما میدانید که یک الگوریتم اعمال تخفیف ممکن است به مرور زمان تغییر کند، به دنبال الگویی باشید که تغییرات در آن الگوریتم را بدون تاثیر بر سایر قسمتهای برنامه کاربردی انجام دهید.
- وقتی که یک الگو را انتخاب کردید، از زبان الگو در کنار زبان دامین برای نام گذاری کلاسها استفاده کنید. برای مثال اگر ازالگوی Strategy استفاده میکنید تا هزینه حمل و نقل کالا توسط شرکت FedEx را محاسبه کند، از نام FedExShippingCostStrategy استفاده کنید. با استفاده از زبان مشترک بین الگو طراحی و مدل دامین، کد برنامه برای شما و دیگران خواناتر و قابل فهمتر میگردد.
- همیشه منظور هر الگو را در ذهن خود مرور کنید و هنگام برخورد با یک مسئله به دنبال مناسبترین الگو بگردید. یک تمرین یادگیری عالی شناسایی الگوهای طراحی در فریم ورک .Net است. برای مثال، ASP.Net Cache از الگوی Singleton استفاده میکند و کلاس Guid از الگوی Factory بهره میبرد.
تا به حال شما باید هدف و الگوریتم استفاده از الگوهای طراحی را درک کرده باشید. در ادامه با لایه بندی برنامه کاربردی آشنا میشوید و سپس نحوه استفاده از این الگوها در لایههای مختلف را فرا خواهید گرفت.