您的位置:首页 > 其它

中介者模式(Mediator Pattern)

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

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

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



创建中介者类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的实例,与大家一起分享。

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: