Design Pattern, Swift, متوسط

strategy pattern in Swift

در این مبحث آموزشی می خواهیم در مورد چگونگی پیاده سازی الگوی طراحی  Strategy در سویفت صحبت کنیم

فرض ما بر این هست که می خواهیم مجموعه ای از اردک ها را طراحی و پیاده سازی کنیم . خب ابتدا به سراغ اینکه این اردک ها چه رفتار هایی می توانند داشته باشند می رویم

رفتار ها

  • یک اردک می تواند پرواز کند یا پرواز نکند ( مثلا اردک پلاستیکی نمی تواند پرواز کند 😁)
  • یک اردک می تواند صدا ایجاد کند یا نکند ( مثل صدای quack )
  • هر اردک یک شکل ظاهری دارد

و …

ما فعلا عمین چند رفتار را شبیه سازی می کنیم.

پیاده سازی پرواز پرنده

خب ابتدا به سراغ پرواز پرنده می رویم برای این کار یک پروتکول به نام IflyBehavior می سازم که در آن یک متد به نام fly() را تعریف می کنم

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

 

پیاده سازی صدای اردک

خب برای این کار دقیقا مشابه رفتاری که برای پرواز انجام دادیم برای صدای اردک نیز پیاده سازی می کنیم

 

پیاده سازی اردک

حب برای این کار یک کلاس می سازیم و رفتار هایی که تعریف کردیم را به عنوان متغییر در کلاس تعریف می کنیم همچنین نوع رفتار ها را در constractor کلاس دریافت می کنیم و به متغییر ها مقدار دهی می کنیم.

حالا می توانیم با انجام هر رفتار کلاس مربوطه را فراخوانی کنیم

ایجاد اردک های مختلف

حالا کار تقریبا تمام شده است . فقط کافیست شما ارکی را که مد نظر دارید تولید کرده و استفاده کنید.

خروجی کد بالا به صورت زیر خواهد بود

شما می توانید با کلیک بر روی لینک زیر به محتوای کد پروژه آموزش داده شده دسترسی داشته باشید

پروژه در گیت هاب

در مبحث بعدی الگوی طراحی نظارت یا همون observe pattern رو اگر وقت شد بهتون در سویفت توضیح خواهم داد

هر سوالی در این رابطه داشتید می تونید کامنت بگذارید

2 دیدگاه در “strategy pattern in Swift

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.