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

动机(Motivation)

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

模式定义

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

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

图示

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

要点总结

  • 将多个对象间发杂的关联关系解耦
  • Facade模式是解耦系统间(单向)的对象关联关系;Mediator模式是解耦系统内各个对象之间(双向)的关联关系。
相关推荐
cliffordl6 小时前
设计模式(python)
python·设计模式
云道轩9 小时前
告诉 Claude Code 在项目中遵循特定的编程模式/设计模式和技术栈约束
设计模式·ai·agent·claude code
花间相见10 小时前
【Java基础面试题】—— 核心知识点面试题(含答案):语法+集合+JVM+设计模式+算法
java·jvm·设计模式
朱一头zcy13 小时前
设计模式入门:最简单的模板方法模式
笔记·设计模式·模板方法模式
君主黑暗18 小时前
设计模式-观察者模式
观察者模式·设计模式
砍光二叉树18 小时前
【设计模式】结构型-组合模式
设计模式·组合模式
砍光二叉树18 小时前
【设计模式】结构型-享元模式
设计模式·享元模式
电子科技圈18 小时前
SmartDV展示汽车IP解决方案以赋能智驾创芯并加速规模化普及
嵌入式硬件·设计模式·硬件架构·软件工程·软件构建·设计规范
砍光二叉树20 小时前
【设计模式】结构型-桥接模式
设计模式·桥接模式
姓蔡小朋友20 小时前
Agent Skill设计模式
开发语言·javascript·设计模式