暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

设计模式系列--中介者模式

TC 谈 2020-11-26
807

定义

中介者模式又称为调解者模式或者调停者模式。用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦和松散,而且可以独立地改变它们之间的交互。

核心:通过中介者解耦系统各层次对象的直接耦合,层次对象的对外依赖通信统统交给中介者转发。

如上图,在未引入中介者之前,各个系统之间(特别多系统交互)耦合度太高,引用关系错综复杂。在引入中介者后,只需要把各自功能注册到中介者,由中介者来管理各个系统间的调用。

实现

在我们日常的微信、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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论