Ali Shobeyri
Ali Shobeyri
خواندن ۲ دقیقه·۴ سال پیش

الگویِ طراحیِ Strategy (جاوا و کاتلین)

مسلما شما همتون حداقل یکبار هم که شده یک بازیِ استراتژیک بازی کردید ، در بازی استراتژیک شما بر حسب شرایط هر بار یک استراتژی متفاوت رو پیش می‌گیرید ، کاری که در الگویِ Strategy انجام میدیم هم همینه ، این الگو به شدت ساده است و کارش تغییر استراتژی (عملیات) ما در run-time هست ، این الگو در طبقه‌بندی Behavioralها قرار می‌گیره .

تو جنگ‌های صلیبی استراتژی شما بستگی به این داشت که طرف قلعه‌شو چطوری ساخته باشه :)
تو جنگ‌های صلیبی استراتژی شما بستگی به این داشت که طرف قلعه‌شو چطوری ساخته باشه :)

معماریِ این الگو به این شکله که کلاسی به نام Context یک Strategy رو در خودش داره و بر حسب شرایط Strategy رو تغییر میده ، Strategy یک interface یا abstract class هست که ما چندین کلاس رو از اون ارث می‌بریم ، یعنی چیزی مانند UML زیر :

پیاده سازی این الگو به شدت آسان و راحته ، فرض کنید یک Strategy برای یک List داریم که خروجی اون یک List از همون جنسه و ما بر حسب شرایط تغییرات خاصی روی اون لیست می‌دیم (سه استراتژی در نظر می‌گیریم ، Sort بر اساس مقدار (لیست ما از Integer هاست) ، Sort برعکس بر اساس مقدار و حذف تمامی عناصر صفر :

https://gist.github.com/sasssass/57a6f2190a72c7032080d4542a8ea3d9

و بعد با استفاده از کلاس Context از استراتژی‌هامون استفاده می‌کنیم :

https://gist.github.com/sasssass/2815326cb7eee73357d1257b813cb500

باقی مقالات در مورد الگوی‌های طراحی رو در این مقاله بخونید .

من رو در لینکدین و اینستاگرام دنبال کنید ???

اگه دوست داشتید می‌تونید به صفحه Spotify بنده هم برید و موسیقی های منو گوش بدید ???


اندرویدجاواکاتلینبرنامه نویسیدیزاین پترن
برنامه نویس اندروید - https://www.linkedin.com/in/iryebohs/
شاید از این پست‌ها خوشتان بیاید