1.15(设计模式)中介者模式
作者:互联网
中介者模式主要解决多个对象和类之间的通信复杂度,主要通过一个中介类接受所有消息,然后再进行转发。
这样可以降低多个对象和类之间的通信复杂度,由原来的网状接口转变为星型结构。
网状结构 星型结构
图片来自: https://www.runoob.com/design-pattern/mediator-pattern.html zml1234
想象一下,如果上图中六个对象是聊天室中六个人,如果不采用中介模式,那么对象1要想其他所有对象发送消息,对象而也是如此。
这样对象多了后,通信的过程很复杂,而且结构混乱不利于后期维护。
我们在这里使用一个中介,所有对象都将消息发送给中介者,然后由中介者进行转发。
这样了不仅结构清晰,而且后期维护也方便。
接下来看一个例子
中介类
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
参考资料:
https://www.runoob.com/design-pattern/mediator-pattern.html
标签:1.15,name,中介,zrx,hcf,User,设计模式,public,String 来源: https://www.cnblogs.com/huang-changfan/p/11002514.html