定义
中介者模式又称为调解者模式或者调停者模式。用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦和松散,而且可以独立地改变它们之间的交互。
核心:通过中介者解耦系统各层次对象的直接耦合,层次对象的对外依赖通信统统交给中介者转发。

如上图,在未引入中介者之前,各个系统之间(特别多系统交互)耦合度太高,引用关系错综复杂。在引入中介者后,只需要把各自功能注册到中介者,由中介者来管理各个系统间的调用。
实现
在我们日常的微信、QQ多人聊天中,发信息时无需给群组的每个人发一遍,只需要发在群组里面,每个人都可以接收到。这其中,群组就充当了中介者角色。
中介者 ChatRoom
public class ChatRoom {
public void showMessage(User user, String message) {
System.out.println("["+user.getName()+"]:"+message);
}
}
用户 User
public class User {
private String name;
private ChatRoom chatRoom;
public User(String name, ChatRoom chatRoom) {
this.name = name;
this.chatRoom = chatRoom;
}
public String getName() {
return name;
}
public void sendMessage(String message) {
chatRoom.showMessage(this, message);
}
}
测试 Test
public class Test {
public static void main(String[] args) {
ChatRoom chatRoom = new ChatRoom();
User user1 = new User("吴彦祖", chatRoom);
User user2 = new User("周润发", chatRoom);
user1.sendMessage("大家好,我是阿祖");
user2.sendMessage("大家好,我是周润发");
}
}

《 完 》

文章转载自TC 谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




