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

动机(Motivation)

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

模式定义

用一个中介对象来封装(封装变化)一系列的对象交互。中介者使各对象不需要显式的相互引用(编译时依赖->运行时依赖),

从而使其耦合松散(管理变化),并且可以独立地改变它们之间的交互。

图示

原1、2、3、4、5互相关联,引入Mediator,将其互相解耦,类似于交换机一样。

要点总结

  • 将多个对象间发杂的关联关系解耦
  • Facade模式是解耦系统间(单向)的对象关联关系;Mediator模式是解耦系统内各个对象之间(双向)的关联关系。
相关推荐
羞儿7 小时前
Agent设计模式与工程化
设计模式·知识图谱·agent·rag·mcp·指导开发
点云SLAM8 小时前
C++(C++17/20)最佳工厂写法和SLAM应用综合示例
开发语言·c++·设计模式·c++实战·注册工厂模式·c++大工程系统
Yu_Lijing12 小时前
基于C++的《Head First设计模式》笔记——状态模式
c++·笔记·设计模式
Engineer邓祥浩13 小时前
设计模式学习(18) 23-16 迭代器模式
学习·设计模式·迭代器模式
老蒋每日coding15 小时前
AI Agent 设计模式系列(十三)—— 人机协同模式
人工智能·设计模式·langchain
老蒋每日coding16 小时前
AI Agent 设计模式系列(十二)—— 异常处理和恢复模式
人工智能·设计模式
小码过河.16 小时前
设计模式——抽象工厂模式
设计模式·抽象工厂模式
国强_dev1 天前
量体裁衣在技术方案中的应用
设计模式·系统架构
Engineer邓祥浩1 天前
设计模式学习(16) 23-14 命令模式
学习·设计模式·命令模式
Maddie_Mo1 天前
智能体设计模式 第二章:路由模式
设计模式