一、我的理解
中介者模式使用类似于银行的模式,如果没有银行的话,三个人之间互相转账需要每两个人之间建立一个联系,这样总共需要6条联系,而通过银行可以大大简化这些联系。
二、实现方式
有一行类似于银行的中央机构代替大家执行共同的方法
三、实例
Java实例
User类:用户类,用户之间需要聊天,在没有聊天室类之前,要实现任意两个用户之间互相通话需要给每两个用户都建立联系
package com.study.dp.mediator;
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);
}
}
ChatRoom类:聊天室类,相当于银行,它整合了所有用户的聊天信息,统一整合展示给所有用户
package com.study.dp.mediator;
import java.util.Date;
public class ChatRoom {
public static void showMessage(User user, String message) {
System.out.println(new Date().toString()+" ["+user.getName()+"] : "+message);
}
}
Demo类:测试类,该测试类中有两个用户,他们通过聊天室这个中介来实现相互聊天,这样当用户更多时也可以通过聊天室作为中介进行聊天而不需要建立更多的连接
package com.study.dp.mediator;
public class Demo {
public static void main(String[] args) {
User robert = new User("Robert");
User john = new User("John");
robert.sendMessage("Hi, John!");
john.sendMessage("Hello, Robert!");
}
}
四、应用场景