概念:
用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
作用:
对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。
应用实例:
1、Java中的Timer
2、mvc框架中,c(控制器)是m(模型)和v(试图)的中介者
实现:
1、创建一个中介类
public class ToMessage {
public static void SendMessageToUsers(User user,String message){
System.out.println(new Date().toString() + "["+ user.getName() +"]" + ":" + message);
}
}
2、创建用户类
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){
ToMessage.SendMessageToUsers(this,message);
}
}
3、测试
User user1 = new User("zhangsan");
User user2 = new User("lisi");
user1.sendMessage("你好,李四!");
user2.sendMessage("你好,张三!");
4、运行结果
在我的理解当中这个中介者模式就是一个变相的mvc框架,中介类相当于一个service,User类里的sendMessage是controller层,这个去理解就容易多了