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

در این قسمت تیم کدگیت را با آموزش Mediator پترن در جاوا همراهی کنید. در ابتدای آموزش به مرور Behavioral Design Pattern پرداخته و در ادامه Mediator پترن را توضیح می‌دهیم. در انتها یک مثال از Mediator پیاده سازی می‌کنیم. پیش‌نیازهای این جلسه شامل موارد زیر می‌باشد:

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

Behavioral Design Pattern

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

Mediator پترن در جاوا

Mediator پترن در جاوا برای کاهش پیچیدگی ارتباط بین کلاس‌ها و اشیا استفاده می‌شود. در این پترن کلاسی به عنوان Mediator قرار گرفته و تمام ارتباطات بین کلاس‌ها و اشیا مختلف را کنترل می‌کند. یکی از مزایای این پترن کاهش وابستگی (Coupling) در ماژول‌های مختلف برنامه است.

برج مراقبت فرودگاه مثالی از پترن Mediator است. برج مراقبت تمامی هواپیماهایی که پرواز می‌کنند و یا فرود می‌آیند را کنترل می‌کند.به جای ارتباط هواپیما – هواپیما، تمامی ارتباط‌ها بین هواپیما و برج مراقبت است. متمرکز کردن ارتباطات کار پترن Mediator می‌باشد.

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

برای نشان دادن Mediator پترن در جاوا ما از Chat Room استفاده می‌کنیم. در چت روم تمامی کاربران می‌توانند به یکدیگر پیغام دهند و مسئولیت کنترل نمایش پیغام‌ها را کلاس ChatRoom (این کلاس نقش Mediatorرا دارد) بر عهده دارد. کلاس User نیز کاربران چت ما هستند. کد زیر نشان‌دهنده این مثال است:

همانطور که در کد بالا می‌بینید در کلاس ChatRoom متدی static برای نمایش پیغام‌های کاربران در نظر گرفته شده است و در کلاس User متدی به نام SendMessage قرار دارد که وظیفه ارسال یک پیغام را بر عهده دارد. برای اجرای برنامه نیز می‌توانید Main زیر را استفاده کنید:

دیاگرام کد بالا به صورت تصویر زیر است:

Mediator پترن در جاوا

پسورد: www.codegate.ir

 

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

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

نظر شما چیست؟

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

wpDiscuz