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

embedded/2024/10/10 23:42:55/

目录

          • 1. 说明
          • 2. 应用场景
          • 3. 结构图
          • 4. 构成
          • 5. 适用性
          • 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.易于维护和扩展:由于对象之间的交互被集中到中介者对象中,因此当需要修改或扩展对象之间的交互时,只需修改中介者对象,而不需要修改各个对象的代码。


http://www.ppmy.cn/embedded/125603.html

相关文章

前端使用rsa对密码加密,springboot使用rsa对密码进行解密

前端 <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>JSEncrypt Example</title><script src"https://cdn.rawgit.com/spark/crypto-js/master…

听说这是MATLAB基础?

MATLAB&#xff08;矩阵实验室&#xff09;是一个强大的高性能计算环境和编程语言&#xff0c;广泛应用于数学计算、算法开发、数据分析、可视化以及模拟等多个领域。以下是MATLAB的一些基础知识&#xff0c;涵盖其功能、语法、基本操作等方面。 1. MATLAB环境 工作区&#xf…

QT学习笔记4.1(常用控件、功能、窗口)

QT学习笔记4.1&#xff08;常用控件) 目录 控件功能、属性 窗口常用功能、属性 扩展功能&#xff1a; 资料 控件功能、属性 1.打开网址 点击菜单名字打开网址&#xff1a; 检测&QMenu::aboutToShow菜单展开信号-》槽函数--》title“”&#xff0c;--》执行打开网址…

使用 Spring Boot 在电商平台中动态调整促销信息

业务背景 在电商平台上&#xff0c;促销活动是吸引用户的重要手段之一。然而&#xff0c;促销活动的状态&#xff08;如开始、结束&#xff09;可能会频繁变化&#xff0c;而这些变化需要实时反映在商品详情页上。如果每次促销状态改变都需要重新部署应用或者手动更改代码&…

牛客:[NOIP2002]字串变换(双向bfs)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 已知有两个字串 A, B及一组字串变换的规则&#xff08;至多6个规则&#xff09;: A1 -> B1 A2 -> B2 规则的含义为&#xff1a;在A中的子串 A1可以变换为 B1、A2可以变换为 B2…

网络接入的镜像模式和串接模式

网络接入的镜像模式和串接模式主要有以下特点&#xff1a; 一、镜像模式 1. 工作原理 - 镜像模式也称为端口镜像&#xff0c;是将网络中指定端口的数据流量复制一份到另一个监测端口&#xff0c;以便进行网络分析、故障排查和安全监控等。例如&#xff0c;将连接重要服务器…

CDAM数据资产管理的策略制定与落地

在当今数字化时代&#xff0c;数据已成为企业最宝贵的资产之一&#xff0c;其质量和价值直接关系到企业的决策效率和市场竞争力。因此&#xff0c;数据资产管理成为企业不可忽视的重要议题。本文将探讨数据资产管理的策略制定与落地过程&#xff0c;以期为企业提供实践指导。 一…

APP的命令和monkey压力测试

一、命令的使用&#xff1a; 1.dos下链接&#xff1a;adb connect 127.0.0.1:62001 2.所附设备清单&#xff1a;adb devices device:已识别的设备&#xff0c;表示连接成功 unauthorized:没有授权需要手机授权才能连接 unkown:未识别设备 offline:离线设备 3.版本&#xff1a;…