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

动机(Motivation)

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

模式定义

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

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

图示

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

要点总结

  • 将多个对象间发杂的关联关系解耦
  • Facade模式是解耦系统间(单向)的对象关联关系;Mediator模式是解耦系统内各个对象之间(双向)的关联关系。
相关推荐
怕浪猫7 小时前
荒岛原始无工业、无电力、无设备,从零搭建最基础计算机体系
人工智能·设计模式·面试
希望永不加班11 小时前
枚举进阶用法:超越常量的设计模式应用
设计模式
summer__777713 小时前
设计模式知识点总结
设计模式
青山师13 小时前
动态代理深度解析:JDK与CGLIB底层实现与实战
java·设计模式·面试·动态代理·java面试·cglib
蜡笔小马15 小时前
03.C++设计模式-原型模式
c++·设计模式·原型模式
何陋轩20 小时前
Spring AI + RAG实战:打造企业级智能问答系统
后端·算法·设计模式
sindyra1 天前
享元模式(Flyweight Pattern)
java·开发语言·设计模式·享元模式·优缺点
这是程序猿1 天前
设计模式入门:Java 单例模式(Singleton)详解,从入门到实战
java·单例模式·设计模式
suixinm1 天前
Agent 设计模式:从 ReAct、CodeAct 到 Agentic Rag 与多智能体
设计模式·ai·react·rag·ai agent·agent智能体·multi-agent
geovindu1 天前
go: Registry Pattern
开发语言·后端·设计模式·golang·注册模式