چگونه یک الگوی طراحی را انتخاب و اعمال کنیم؟
نویسنده: توسعه چابک
تاریخ: ۱۳۹۲/۰۹/۱۲ ۱۳:۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
با توجه به اینکه الگوهای طراحی زیادی وجود دارند، چگونه میتوانید مناسبترین الگوی طراحی را برای حل مسئله خود انتخاب کنید و مهمتر اینکه چگونه آن را اعمال نمایید؟ برای پاسخ به این سوال، رهنمودهای زیر را همیشه در نظر داشته باشید:
- شما نمیتوانید یک الگو را به کار بگیرید مگر آنکه آن را به خوبی فهمیده باشید. بنابراین در اولین گام باید اصول و الگوهای طراحی را هم به شکل انتزاعی و هم به شکل واقعی خوانده و تمرین کنید. دقت کنید که یک الگو را به شکلهای مختلفی میتوان پیاده سازی کرد. هر چه پیاده سازیهای بیشتری ببینید، به هدف و چگونگی استفاده از آن بهتر مسلط میشوید.
- آیا میخواهید با استفاده از یک الگوی طراحی، برنامه خود را پیچیدهتر کنید؟ این معمول است که توسعه دهندگان برای حل هر مسئله از الگوهای طراحی استفاده میکنند. ابتدا هزینه و فایده پیاده سازی یک الگو را ارزیابی کرده، سپس اقدام به استفاده کنید. همیشه قاعده KISS را به خاطر داشته باشید.
- مسئله خود را تعمیم دهید. پیامدهای مسئله خود را با دید انتزاعی و سطح بالا بررسی کنید. به یاد داشته باشید که الگوهای طراحی، راه حلهای سطح بالا برای مسائل سطح بالا هستند. بنابراین روی پیامدهای جزئی یا وابسته به دامین مسئله خود تمرکز نکنید.
- به الگوهای مشابه و هم گروه نگاه کنید. اگر قبلا از یک الگو استفاده کردهاید بدین معنی نیست برای هر مسئلهای آن الگو درست است.
- هر چیزی که تغییر میکند را بسته بندی کنید. ببینید که چه چیزی در برنامه کاربردی شما ممکن است تغییر کند. اگر شما میدانید که یک الگوریتم اعمال تخفیف ممکن است به مرور زمان تغییر کند، به دنبال الگویی باشید که تغییرات در آن الگوریتم را بدون تاثیر بر سایر قسمتهای برنامه کاربردی انجام دهید.
- وقتی که یک الگو را انتخاب کردید، از زبان الگو در کنار زبان دامین برای نام گذاری کلاسها استفاده کنید. برای مثال اگر ازالگوی Strategy استفاده میکنید تا هزینه حمل و نقل کالا توسط شرکت FedEx را محاسبه کند، از نام FedExShippingCostStrategy استفاده کنید. با استفاده از زبان مشترک بین الگو طراحی و مدل دامین، کد برنامه برای شما و دیگران خواناتر و قابل فهمتر میگردد.
- همیشه منظور هر الگو را در ذهن خود مرور کنید و هنگام برخورد با یک مسئله به دنبال مناسبترین الگو بگردید. یک تمرین یادگیری عالی شناسایی الگوهای طراحی در فریم ورک .Net است. برای مثال، ASP.Net Cache از الگوی Singleton استفاده میکند و کلاس Guid از الگوی Factory بهره میبرد.
تا به حال شما باید هدف و الگوریتم استفاده از الگوهای طراحی را درک کرده باشید. در ادامه با لایه بندی برنامه کاربردی آشنا میشوید و سپس نحوه استفاده از این الگوها در لایههای مختلف را فرا خواهید گرفت.
تشکر
مطالبی که گفتید رو من به عینه باهاش درگیر بودم و هستم اما تا حالا راه حلی براش پیدا نکردم مثلا الگویی که من استفاده میکنم به این صورت هست که برا هر موجودیتی یک فرم در نظر میگیرم و در این فرم 4 عمل ( جستجو - اضافه - حذف - ویرایش ) رو در اون تعبیه میکنم که در بعضی مواقع این احساس بهم دست میده که کدهام دارای پیچیدگی شده .
این مطالب شما به صورت نظری هستن اگه امکانش هست مثال هایی به صورت ملموستری بزنید ممنون میشم.