مسلما شما همتون حداقل یکبار هم که شده یک بازیِ استراتژیک بازی کردید ، در بازی استراتژیک شما بر حسب شرایط هر بار یک استراتژی متفاوت رو پیش میگیرید ، کاری که در الگویِ Strategy انجام میدیم هم همینه ، این الگو به شدت ساده است و کارش تغییر استراتژی (عملیات) ما در run-time هست ، این الگو در طبقهبندی Behavioralها قرار میگیره .
معماریِ این الگو به این شکله که کلاسی به نام Context یک Strategy رو در خودش داره و بر حسب شرایط Strategy رو تغییر میده ، Strategy یک interface یا abstract class هست که ما چندین کلاس رو از اون ارث میبریم ، یعنی چیزی مانند UML زیر :
پیاده سازی این الگو به شدت آسان و راحته ، فرض کنید یک Strategy برای یک List داریم که خروجی اون یک List از همون جنسه و ما بر حسب شرایط تغییرات خاصی روی اون لیست میدیم (سه استراتژی در نظر میگیریم ، Sort بر اساس مقدار (لیست ما از Integer هاست) ، Sort برعکس بر اساس مقدار و حذف تمامی عناصر صفر :
و بعد با استفاده از کلاس Context از استراتژیهامون استفاده میکنیم :
باقی مقالات در مورد الگویهای طراحی رو در این مقاله بخونید .
من رو در لینکدین و اینستاگرام دنبال کنید ???
اگه دوست داشتید میتونید به صفحه Spotify بنده هم برید و موسیقی های منو گوش بدید ???