【软考】设计模式之中介者模式

目录

          • [1. 说明](#1. 说明)
          • [2. 应用场景](#2. 应用场景)
          • [3. 结构图](#3. 结构图)
          • [4. 构成](#4. 构成)
          • [5. 适用性](#5. 适用性)
          • [6. 优点](#6. 优点)
1. 说明
  • 1.用一个中介对象来封装一系列的对象交互。
  • 2.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
  • 3.中介者模式(Mediator Pattern)是一种行为设计模式,主要用于降低系统中对象之间的耦合度,提高系统的灵活性和可维护性。
  • 4.中介者模式定义了一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。
  • 5.在中介者模式中,各个对象不再直接相互引用和通信,而是通过中介者来进行间接通信。
2. 应用场景
  • 1.系统中存在多个对象之间复杂的交互关系时,可以使用中介者模式来简化这些交互。
  • 2.当系统中的对象之间需要解耦,减少直接依赖时,可以使用中介者模式。
  • 3.当系统中的对象交互关系需要独立于各个对象的实现而变化时,可以使用中介者模式。
3. 结构图
4. 构成
  • 1.抽象中介者(Mediator):定义一个接口,该接口用于定义各同事(Colleague)对象之间进行通信需要的方法。
  • 2.具体中介者(ConcreteMediator):实现抽象中介者接口,通过协调各个同事对象来实现协作行为,了解并维护它的各个同事,它维持了对各个同事对象的引用。
  • 3.抽象同事类(Colleague):定义各个同事类公有的方法,并声明了一些抽象方法来供子类实现,同时它维持了一个对抽象中介者类的引用,其子类可以通过该引用来与中介者通信。
  • 4.具体同事类(ConcreteColleague):实现抽象同事类,每一个同事对象在需要和其他同事对象通信时,先与中介者通信,通过中介者来间接完成与其他同事类的通信。
5. 适用性
  • 1.一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。
  • 2.一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象。
  • 3.想定制一个分布在多个类中的行为,而又不想生成太多的子类。
6. 优点
  • 1.降低耦合度:通过引入中介者对象,各个对象之间的直接依赖关系被减少,使得系统结构更加灵活和可扩展。

  • 2.简化交互:中介者模式将对象之间的多对多交互关系转换为中介者与各个对象之间的一对多关系,简化了对象之间的交互逻辑。

  • 3.易于维护和扩展:由于对象之间的交互被集中到中介者对象中,因此当需要修改或扩展对象之间的交互时,只需修改中介者对象,而不需要修改各个对象的代码。

相关推荐
阿狸猿2 天前
云原生数据库
云原生·软考
阿狸猿2 天前
性能测试核心内容及项目实践论述
软考
BOB-wangbaohai2 天前
软考-云原生系统设计分析
软考·系统架构师·云原生架构
阿闽ooo3 天前
中介者模式打造多人聊天室系统
c++·设计模式·中介者模式
小米4963 天前
js设计模式 --- 工厂模式
设计模式
阿狸猿3 天前
单元测试中静态测试、动态测试及白盒测试、回归测试实践
单元测试·软考
阿狸猿3 天前
事件驱动架构的核心概念、特点及设计开发过程——结合项目实践的落地、问题与解决方案
架构·软考
zlp19923 天前
软考(系统架构师)-软件架构设计之质量属性与架构评估易混淆点(质量属性、质量属性场景、质量属性效用树)
软考高级·软考·系统架构师
逆境不可逃3 天前
【从零入门23种设计模式08】结构型之组合模式(含电商业务场景)
线性代数·算法·设计模式·职场和发展·矩阵·组合模式
驴儿响叮当20103 天前
设计模式之状态模式
设计模式·状态模式