中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。
关键代码:对象 Colleague 之间的通信封装到一个类中单独处理。
优点: 1、降低了类的复杂度,将一对多转化成了一对一。 2、各个类之间的解耦。 3、符合迪米特原则。
缺点:中介者会庞大,变得复杂难以维护。
- 创建中介类。
/**
* 1. 创建中介类。
* @author mazaiting
*/
public class ChatRoom {
public static void showMessage(User user, String message){
System.out.println();System.out.println(new Date().toString()
+ " [" + user.getName() +"] : " + message);
}
}
- 创建 User 类。
/**
* 2. 创建 user 类。
* @author mazaiting
*/
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;
}
/**
* 发送消息
* @param message
*/
public void sendMessage(String message){
ChatRoom.showMessage(this, message);
}
}
- 使用 User 对象来显示他们之间的通信。
/**
* 3. 使用 User 对象来显示他们之间的通信。
* @author mazaiting
*/
public class Client {
public static void main(String[] args) {
User robert = new User("Robert");
User john = new User("John");
robert.sendMessage("Hi! John!");
john.sendMessage("Hello! Rebort!");
}
}
- 打印结果
Sun Sep 10 19:56:53 CST 2017 [Robert] : Hi! John!
Sun Sep 10 19:56:53 CST 2017 [John] : Hello! Rebort!