栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

中介者模式,终结者的缔造者!

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

中介者模式,终结者的缔造者!

​ 今天想和大家讨论下中介者模式,中介者模式是啥捏?设计模式有三大类,一类是创建型模式,第二类是行为型模式,最后一类是结构型模式,中介者模式属于哪一种呢?看完本篇文章,你就懂啦!

​ 那什么是中介者模式,它适合什么场景,如何实现,有哪些优缺点?听洪爵一一道来。

​ 中介者模式是用来降低对象和对象之间通信的复杂性,提供一个中介类来给大家进行交互。啥意思?最初的时候,人们想要以物换物,都是通过点对点的进行交易,比如说A今天找到B,想用一个牛头换一个B的羊头。慢慢的,随着时代的进步,逐步演化成了一个固定地方进行交易,大家想要交易换取其他伙伴物件的可以来到一个共同的地方,效率高,而且好维护。

​ 中介者模式在很多场景都有应用,比如说聊天室,像QQ,Wechat等,一个群组就是一个中介者对象,提供一个场所供大家交换信息;WTO,联合国,世界卫生组织都是这样的产物。

​ 很明显了,中介者模式是属于行为型模式,松耦合,这类模式更关注对象之间的通信。

​ 那如何做呢?我们拿聊天室举一个例子,首先我们需要有一个中介类,一个大家可以交互的场所WeChatRoom,第二个需要有参与者RoomUser,紧接着就是实现RoomUser之间如何进行通信了。

类图:

具体代码实现:

public class WeChatRoom {

    public static Map userMappingGroupChat = new ConcurrentHashMap<>();

    public static void printMessage(RoomUser roomUser, String message) {
        String groupChart = userMappingGroupChat.get(roomUser);
        if(Objects.isNull(groupChart)) {
            return;
        }
        System.out.println(new Date().toString() + " " + roomUser.getName() + "向" + groupChart + "发送一条消息: " + message);
    }
}

public class RoomUser {

    private String name;

    public RoomUser(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void sendMessage(String message) {
        WeChatRoom.printMessage(this, message);
    }
}

public class Client {
    public static void main(String[] args) {
        RoomUser baidu = new RoomUser("baidu");
        RoomUser tenCent = new RoomUser("tenCent");
        RoomUser google = new RoomUser("google");

        WeChatRoom.userMappingGroupChat.put(baidu, "群聊1");
        WeChatRoom.userMappingGroupChat.put(tenCent, "群聊1");
        WeChatRoom.userMappingGroupChat.put(google, "群聊2");

        baidu.sendMessage("hello everybody!");
        tenCent.sendMessage("i can hear you clearly");
        google.sendMessage("i can protobuf!!!");
    }
}

​ 中介者模式的优点降低了类的复杂度,各个类之间实现了解耦。

​ 中介者模式可能很多人没有听过,因为这是2018年才公布的计算机科学技术名词呀!

​ 好了,本章节就到这里了,希望对你有所帮助!

愿每个人都能带着怀疑的态度去阅读文章并探究其中原理。

道阻且长,往事作序,来日为章。

期待我们下一次相遇!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322339.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号