1.15(设计模式)中介者模式

中介者模式主要解决多个对象和类之间的通讯复杂度,主要经过一个中介类接受全部消息,而后再进行转发。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

 

 

 

参考资料:

https://www.runoob.com/design-pattern/mediator-pattern.html

相关文章
相关标签/搜索