آموزش الگوی طراحی Strategy Design Pattern قسمت اول

آموزش الگوی طراحی Strategy Design Pattern قسمت اول

آموزش الگوی طراحی Strategy Design Pattern قسمت اول 640 480 حسین صداقت

سناریوی زیر را در نظر بگیرید:

بازی وجود دارد که در آن انواع و اقسام اردک تعریف شده اند و اردک ها قادر به شنا کردن و کوئک کردن و دارای نمایش خاص می باشند و شی این اردک ها به این صورت تعریف شده است که یک کلاس Abstract به نام Duck تعریف شده است و کلاس های RedHeadDuck و MallardDuck از این کلاس ارث برده و متد Display کلاس پدر را Override و بازنویسی کرده اند:

 

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

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

خب تیم فنی برای ایجاد این تغییر چه راه حل هایی را می تواند در نظر بگیرد؟

۱-Inheritance : اولین راه کاری که به ذهن تیم فنی می آید این است که برای اردک هایی که قادر به پرواز کردن نیستند متد Fly را Override و بازنویسی کنند و عملیات و Action پرواز نکردن را برای آن ها تعریف کنند.همچنین فرض کنید اردکی هم توانایی Quack کردن هم نداشته باشد.اما این کار دارای مشکلاتی است :

۱-این کار باعث پیدا شدن کد duplicate در سیستم می شود به این صورت که اردک هایی که رفتار مشابه دارند باید جداگانه رفتار ها در سیستم تعریف شوند.

۲-ممکن است ما بخواهیم اردک ما تحت شرایطی و در Run time  تصمیم گرفته شود که پرواز کند که این کار با Inheritance امکان پذیر نیست.

به دلایل بالا استفاده از Inhertiance یا ارث بری رد می شود.

قسمت دوم این مقاله را در اینجا بخوانید.

پایان قسمت اول

منبع : Head First Design Pattern

 

شنبه ها قبل از شروع کار یک مقاله رایگان از لابراتوار رسانه برای بهبود کسب و کار خود دریافت کنید

 

برخی از مطالب مرتبط که ممکن است به کارتان بیایند:

چگونه فروشگاه اینترنتی فوق العاده ای داشته باشیم (... در این سلسله مقاله به چگونه ای به باید و نباید های یه فروشگاه اینترنتی خوب خواهیم پرداخت، با ما همراه باشید. با پیشرفت در دهه های اخیر امکانات زیادی ...
۹ نکته مهم برای نوشتن متن صفحه درباره ما... برای بسیاری از شرکت ها، متن صفحه درباره ما مانند یک ریسک بزرگ و پیچیده است که هیچ کس دلش نمی خواهد درباره آن حرف بزند و اغلب افراد به دلیل تجربه یا اط...
لندینگ پیج یا صفحه ی فرود چیست؟... لندینگ پیج (Landing Page) یا همان صفحه ی فرود ، صفحه ‌ای جدا از صفحات اصلی وب سایت است که معمولا کاربر بر روی یک بنر یا آگهی کلیک کرده و به این صفحه ا...