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

目录

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

相关推荐
In_life 在生活9 小时前
设计模式(四)装饰器模式与命令模式
设计模式
瞎姬霸爱.9 小时前
设计模式-七个基本原则之一-接口隔离原则 + SpringBoot案例
设计模式·接口隔离原则
鬣主任10 小时前
Spring设计模式
java·spring boot·设计模式
程序员小海绵【vincewm】12 小时前
【设计模式】结合Tomcat源码,分析外观模式/门面模式的特性和应用场景
设计模式·tomcat·源码·外观模式·1024程序员节·门面模式
丶白泽12 小时前
重修设计模式-行为型-命令模式
设计模式·命令模式
gjh120815 小时前
设计模式:工厂方法模式和策略模式
设计模式·工厂方法模式·策略模式
shinelord明17 小时前
【再谈设计模式】抽象工厂模式~对象创建的统筹者
数据结构·算法·设计模式·软件工程·抽象工厂模式
前端拾光者18 小时前
前端开发设计模式——责任链模式
设计模式·责任链模式
liang899919 小时前
设计模式之策略模式(Strategy)
设计模式·策略模式
马剑威(威哥爱编程)19 小时前
读写锁分离设计模式详解
java·设计模式·java-ee