中介者模式(Mediator Pattern)

    在多个对象或者类之间,中介者模式用来减少交流的复杂性。这个模式提供了一个中介者类,这个类正常地处理不同类之间的交流。通过松耦合性,它使得代码维护性更容易。中介者模式归属于行为型模式的范畴。

    为了更好的阐述这个观念,我用一个实例来表达这个思想。

    我创建了一个聊天室类ChartRoom,一个用户类User。用户发信息到ChatRoom中,而ChatRoom负责发送信息给所有的对象。UML类图如下所示:

中介者模式(Mediator Pattern)_第1张图片

创建中介者类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);
   }
}


创建用户类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);
   }
}


测试类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!");
   }
}


输出结构:

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

     看上面的例子挺简单的,真正地难再中介类的信息推送策略上。这个策略如何设计,直接影响到程序的效率。

     23钟经典的设计模式总算告一段落了,我有点轻松了。看看时间已经零点了,该休息了。应网友的要求,这个设计模式的博客比较简洁。但是,最重要的是理解某种设计模式的思想,这才是最重要的。多学习一下经典的实例,加上对中模式优越性的理解,这是学习的重点。将后来,我将介绍几个经典Java API的实例,与大家一起分享。

    

你可能感兴趣的:(中介者模式(Mediator Pattern))