中介模式
中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。
场景1:你使用QQ聊天时,你能够在群聊天窗口看到其他人发的消息,这种情况下,群聊天室就相当于一个中介,将所有的用户连接了起来
具体实现如下:
先定义一个ChatRoom的中介类
import java.util.Date;
public class ChatRoom {
public static void showMessage(User user, String message){
System.out.println(new Date().toString()
+ " [" + user.getName() +"] : " + message);
}
}
接着定义一个用户类:
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);
}
}
User对象之间相互通信:
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!");
}
}
中介模式的优点:
- 减少类与类的依赖,降低了类和类之间的耦合;
- 容易拓展新的功能
中介模式的缺点:
- 中介者本身的复杂性可能会很大,例如 一个类的方法很多