当前位置: 首页 > news >正文

C++设计模式-中介者模式

动机(Motivation)

  • 多个对象相互关联的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断的变化。
  • 在这种情况下,可以使用一种”中介对象“来管理对象间的关联关系,避免相互交互的对象之间的紧耦合引用关系,从而更好地抵御变化。

模式定义

用一个中介对象来封装(封装变化)一系列的对象交互。中介者使各对象不需要显式的相互引用(编译时依赖->运行时依赖),
从而使其耦合松散(管理变化),并且可以独立地改变它们之间的交互。

图示

在这里插入图片描述
原1、2、3、4、5互相关联,引入Mediator,将其互相解耦,类似于交换机一样。

要点总结

  • 将多个对象间发杂的关联关系解耦
  • Facade模式是解耦系统间(单向)的对象关联关系;Mediator模式是解耦系统内各个对象之间(双向)的关联关系。
http://www.lryc.cn/news/493084.html

相关文章:

  • 文件上传与下载服务 | Flask 实战
  • MySQL 中的排序:索引排序与文件排序
  • 深入理解React Hooks:使用useState和useEffect
  • AWS codebuild + jenkins + github 实践CI/CD
  • Android PMS(Package Manager Service)源码介绍
  • 运维面试整理总结
  • 图数据库 Cypher语言
  • 阿里云oss转发上线-实现不出网钓鱼
  • Spring Boot 3.4.0 发行:革新与突破的里程碑
  • 【网络安全】
  • 在SQLyog中导入和导出数据库
  • RabbitMQ简单应用
  • 使用LUKS对Linux磁盘进行加密
  • 戴尔电脑安装centos7系统遇到的问题
  • 3.4.SynchronousMethodHandler组件之ResponseHandler
  • Linux 下进程的状态
  • 【计算机网络】核心部分复习
  • Spring Boot开发实战:从入门到构建高效应用
  • pyshark安装使用,ubuntu:20.04
  • 基本功能实现
  • 《那个让服务器“跳舞”的bug》
  • Python 网络爬虫进阶:动态网页爬取与反爬机制应对
  • 创建可直接用 root 用户 ssh 登陆的 Docker 镜像
  • wordpress 中添加图片放大功能
  • 数据结构 (7)线性表的链式存储
  • 库的操作.
  • Vue进阶之Vue CLI服务—@vue/cli-service Vuex
  • 导入100道注会cpa题的方法,导入试题,自己刷题
  • 数据库操作、锁特性
  • 学习笔记039——SpringBoot整合Redis