• 中介者模式(Mediator Pattern)


    参考文章:

    https://www.cnblogs.com/ysw-go/p/5413958.html

    定义:

    用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

    uml类图:

    模式组成:

    • Mediator:中介者。定义一个接口用于与各同事(Colleague)对象通信
    • ConcreteMediator:具体中介者。通过协调各同事对象实现协作行为,了解并维护它的各个同事
    • Colleague:抽象同事类。主要扶着约束同事对象的类型,并实现一些具体同事类之间的公共功能
    • Colleagueclass:具体同事类。每个具体同事类都只需要知道自己的行为即可,但是他们都需要认识中介者

    优点:

    • 松耦合

      中介者模式通过把多个同事对象之间的交互封装到中介对象里面,从而使得同时对象之间松散耦合,基本上可以做到互不依赖。这样一来,同时对象就可以独立的变化和复用,不再“牵一发动全身”

    • 集中控制交互

      多个同事对象的交互,被封装在中介者对象里面集中管理,使得这些交互行为发生变化的时候,只需要修改中介者就可以了。

    • 多对多变为一对多
      没有中介者模式的时候,同事对象之间的关系通常是多对多,引入中介者对象后,中介者和同事对象的关系通常变为双向的一对多,这会让对象的关系更容易理解和实现。

    应用:

    • MVC模式(其中C,控制器就是一个中介者,M和V和它打交道)
    • 窗口游戏程序,窗口软件开发中窗口对象也是一个中介者对象

    • Java.lang.reflect.Method#invoke()

    举个栗子:

  • 相关阅读:
    进程间通迅之消息队列
    进程间通讯之共享内存
    标准块CP功能实现
    标准字符cp功能
    文件cp功能
    jest 的 coverage 提示 unknown 的解决方案
    js中的相等
    getBoundingClientRect 和 requestAnimFrame 的polyfill
    设计模式(4): 给组件实现单独的store
    Vue项目移动端滚动穿透问题
  • 原文地址:https://www.cnblogs.com/amei0/p/8037474.html
Copyright © 2020-2023  润新知