十八、中介者模式
中介者模式(Mediator Pattern )通过中介类来降低多个对象和类的复杂通讯,有利于降低系统耦合和代码维护。
实现
示例聊天室情景,各个User用户向聊天室发送信息,而不是直接发送给其他User,聊天室充当中介者。
- 创建对象类
User.java
/**
* Created by lenovo on 2016/12/1 0001.
* 对象类,多个对象实例,通过中介者来通讯,所以需要想终结者发送消息,而不是直接发给其他对象。
*/
public class User {
private String name;
public User(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/**
* 调用ChatRoom的showMsg,来向聊天室发送消息,给其他对象看。
* @param msg
*/
public void sendMsg(String msg){
ChatRoom.showMsg(this,msg);
}
}
- 创建中介类
ChatRoom.java
import java.util.Date;
/**
* Created by lenovo on 2016/12/1 0001.
* 聊天室,充当中介类
*/
public class ChatRoom {
public static void showMsg(User user,String msg){
System.out.println(new Date().toString() + " [" + user.getName() + "] : "+msg);
}
}
- 演示
MediatorPatternDemo.java
/**
* Created by lenovo on 2016/12/1 0001.
*
*/
public class MediatorPatternDemo {
public static void main(String[] args){
User robert = new User("Robert");
User john = new User("John");
robert.sendMsg("Hello john");
john.sendMsg("Hi Robert");
}
}
- 输出
Thu Dec 01 09:33:05 CST 2016 [Robert] : Hello john
Thu Dec 01 09:33:05 CST 2016 [John] : Hi Robert