中介者模式主要解决多个对象和类之间的通讯复杂度,主要经过一个中介类接受全部消息,而后再进行转发。html
这样能够下降多个对象和类之间的通讯复杂度,由原来的网状接口转变为星型结构。java
网状结构 星型结构测试
图片来自: https://www.runoob.com/design-pattern/mediator-pattern.html zml1234this
想象一下,若是上图中六个对象是聊天室中六我的,若是不采用中介模式,那么对象1要想其余全部对象发送消息,对象而也是如此。spa
这样对象多了后,通讯的过程很复杂,并且结构混乱不利于后期维护。code
咱们在这里使用一个中介,全部对象都将消息发送给中介者,而后由中介者进行转发。htm
这样了不只结构清晰,并且后期维护也方便。对象
接下来看一个例子blog
中介类接口
import java.util.Date; public class ChatRoom { public static void sendMessage(User user, String message) { System.out.println(new Date().toString() + " [" + user.getName() +"] : " + message); } }
聊天室用户
User
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; } public void sendMessage(String message) { ChatRoom.sendMessage(this,message); } }
测试
public class Main { public static void main(String[] args) { User hcf = new User("hcf"); User zrx = new User("zrx"); hcf.sendMessage("你好!zrx"); zrx.sendMessage("你好,hcf"); } }
运行结果:
Tue Jun 11 11:16:28 CST 2019 [hcf] : 你好!zrx Tue Jun 11 11:16:28 CST 2019 [zrx] : 你好,hcf
参考资料: