中介者模式
中介者模式是用來降低多個對象和類之間的通信複雜性。這種模式提供了一箇中介類,該類通常處理不同類之間的通信,並支持鬆耦合,使代碼易於維護。
- 優點
- 降低了類的複雜度,將一對多轉化成了一對一;
- 各個類之間的解耦;
- 符合迪米特原則。
- 缺點
- 中介者會龐大,變得複雜難以維護。
// 聊天室
public class ChatRoom {
public static void showMessage(User user, String message){
System.out.println("[" + user.getName() +"]:" + message);
}
}
@Data
@AllArgsConstructor
public class User {
private String name;
public void sendMessage(String message){
ChatRoom.showMessage(this, message);
}
}
// 使用示例
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!");
}
}