vuePress-theme-reco MS    2019 - 2020

Choose mode

  • dark
  • auto
  • light
主页
分类
  • 程序设计
标签
时间线
关于我
author-avatar

MS

26

文章

3

标签

主页
分类
  • 程序设计
标签
时间线
关于我
  • 中介者模式

    • Why
      • What
        • UML
        • 角色
        • 适用场景

    中介者模式

    vuePress-theme-reco MS    2019 - 2020

    中介者模式


    MS 2020-04-17 11:24:31 面向对象 设计模式

    # Why

    如果一个系统中对象之间的联系呈现网状结构,存在大量的多对多联系,会导致系统非常复杂,可以使用中介者类来达到降低系统耦合度的目的,将对象之间的一些交互行为从各个对象中分离出来,集中封装到一个中介者对象中进行统一协调。将多对多转化为一对多,是迪米特法则的一个应用。

    # What

    # UML

    中介者模式

    # 角色

    Colleague(抽象同事类):定义了同事类公共的方法,同时维持了一个对抽象中介者的引用,子类可以通过该引用与中介者通信。

    # 适用场景

    • 系统中对象之间存在复杂的引用关系
    • 一个对象引用了其他很多对象导致难以复用
    • 希望通过一个中间类来封装多个类的行为,而又不想生成太多子类