بخش های اصلی

آموزش الگوهای طراحی

Design Pattern - الگوی Mediator

الگوی Mediator، برای کاهش پیچیدگی های ارتباطی میان چند شیء یا کلاس به کار میره. این الگو یک کلاس mediator ارائه میده که معمولاً ارتباطات میان کلاس های مختلف را برقرار می کنه و از طریق اتصال سست، از قابلیت نگهداریِ آسان کد پشتیبانی می کنه. الگوی Mediator، زیرگروهِ الگوی رفتاری (behavioral) محسوب میشه.

پیاده سازی

در این بخش الگوی mediator را با مثالی از یک چت روم که در آن چندین کاربر می توانند به چت روم پیام بفرستن و مسئولیت نمایش پیام های تمام کاربران با چت روم است، به شما یاد میدیم. دو کلاس به نام های ChatRoom و User ایجاد می کنیم. شیءِ User از متد ChatRoom برای به اشتراک گذاشتن پیام هایش استفاده می کنه.

MediatorPatternDemo، در نسخه ی آزمایشیِ کلاس مان از اشیاء User برای نمایش ارتباط بین آن ها استفاده خواهیم کرد.

mediator pattern uml diagram

مرحله ی 1

ایجاد کلاسِ mediator.

ChatRoom.java

import java.util.Date;

public class ChatRoom {
   public static void showMessage(User user, String message){
      System.out.println(new Date().toString() + " [" + user.getName() + "] : " + message);
   }
}

مرحله ی 2

ایجاد کلاسِ user

User.java

public class User {
   private String name;

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public User(String name){
      this.name  = name;
   }

   public void sendMessage(String message){
      ChatRoom.showMessage(this,message);
   }
}

مرحله ی 3

استفاده از شیء User برای نشان دادن ارتباطات بین آن ها.

MediatorPatternDemo.java

public class MediatorPatternDemo {
   public static void main(String[] args) {
      User robert = new User("Robert");
      User john = new User("John");

      robert.sendMessage("Hi! John!");
      john.sendMessage("Hello! Robert!");
   }
}

مرحله ی 4

بررسی خروجی

Thu Jan 31 16:05:46 IST 2013 [Robert] : Hi! John!
Thu Jan 31 16:05:46 IST 2013 [John] : Hello! Robert!

مبحث آموزشی

آموزش الگوهای طراحی

Learn Design Patterns

سرفصل ها

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

تبلیغات

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

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد