Strategy پترن در جاوا (Strategy Pattern)

در این قسمت تیم کدگیت را با آموزش Strategy پترن در جاوا همراهی کنید. در ابتدای این جلسه ما توضیح کوتاهی از این پترن خواهیم داد سپس یکی از کتابخانه‌های جاوا که از Strategy پترن استفاده کرده است را ذکر می‌کنیم و در پایان کار طبق روال آموزش‌های گذشته یک مثال واقعی که از این پترن استفاده کرده را پیاده سازی می کنیم. پیش نیاز این آموزش شامل موارد زیر می‌باشد:

  1. شی گرایی در جاوا
  2. متد در جاوا
  3. Constructor در جاوا
  4. This در جاوا
  5. Interface در جاوا
  6. ArrayList در جاوا
  7. ارث بری در جاوا

Behavioral Design Pattern

یکی از زیر شاخه‌های دیزاین پترن Behavioral Design Pattern می‌باشد. یکی از وظایف اصلی این دیزاین پترن، تعامل اشیا و جداسازی وظایف آنها با یکدیگر است. تعریف کامل Behavioral Design Pattern بدین صورت است که، تمامی اشیا با یکدیگر به راحتی بتوانند ارتباط برقرار کرده، بدون آنکه باعث وابستگی بین آنها شود.

Strategy پترن در جاوا

در Strategy پترن رفتار کلاس یا روش آن در زمان اجرا تغییر می‌کند. برای توضیح این پترن در دنیای واقعی، مثال یک برنامه‌نویس را می‌زنیم. اگر زبان برنامه‌نویسی برای کاری مهم نباشد ممکن است مشتری درخواست پروژه‌ای با UI داشته باشد. یک برنامه نویس جاوا را انتخاب کرده و برنامه نویس دیگری سی شارپ. برای مشتری اهمیتی ندارد چه زبان برنامه‌نویسی انتخاب شود و جزییات را بر عهده برنامه نویس می‌گذارد. همچنین در هر مرحله می‌توان زبان‌برنامه نویسی را تغییر داد (بسته به تصمیم برنامه‌نویس).

دیاگرام Strategy پترن در جاوا در زیر آورده شده است. همانطور که مشاهده می‌کنید، این دیاگرام شبیه به State پترن است. در هر دو پترن یک کلاس Context و یک Interface وجود دارد.در این دیاگرام کلاس Strategy مثل انتخاب زبان برنامه نویسی است که با توجه به صدا زدن Main برنامه و در زمان اجرا تغییر می‌کند. یکی از مثال های این پترن کلاس Collection.sort است که با توجه به interface به نام Comparable کار می‌کند.

Strategy پترن در جاوا

مثال Strategy پترن در جاوا

در این قسمت یک مثال از Strategy پترن خواهیم زد. فرض کنید می‌خواهیم یک برنامه کارت اعتباری را برای مغازه‌ای بنویسید. در این برنامه دو نوع روش PayPal و کارت بانکی برای پرداخت (یک محصول از مغازه) داریم. حال با توجه به فرضیات گفته شده به دیاگرام زیر توجه کنید:

Strategy پترن در جاوا

یک Interface برای روش پرداخت (Strategy) نوشته شده و یک کلاس به نام Context (همان Shopping cart) برای استفاده از Strategy نوشته شده است(کلاس‌های دیگر، کلاس های کمکی هستند). کد این مثال به صورت زیر است:

تست مثال Strategy پترن در جاوا

برای تست کدهای بالا،کد Main زیر را اجرا کنید:

خروجی برنامه به صورا زیر می‌باشد:

 

پسورد: www.codegate.ir

دسته : design pattern, java, جاوا, دیزاین پترن

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz