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

动机(Motivation)

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

模式定义

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

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

图示

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

要点总结

  • 将多个对象间发杂的关联关系解耦
  • Facade模式是解耦系统间(单向)的对象关联关系;Mediator模式是解耦系统内各个对象之间(双向)的关联关系。
相关推荐
海特伟业11 小时前
隧道调频广播覆盖-隧道调频广播无线覆盖系统建设要点、难点分析与解决应对
运维·设计模式
sg_knight11 小时前
设计模式实战:享元模式(Flyweight)
python·设计模式·享元模式·flyweight
Swift社区14 小时前
AI 时代,ArkUI 的设计模式会改变吗?
人工智能·设计模式
数据中穿行14 小时前
访问者设计模式全方位深度解析
设计模式
宁雨桥15 小时前
前端设计模式面试题大全
前端·设计模式
数据中穿行16 小时前
迭代器设计模式全方位深度解析
设计模式
数据中穿行16 小时前
观察者设计模式全方位深度解析
设计模式
程序员Terry16 小时前
别老写重复代码了!模版方法模式一次讲透
java·设计模式
数据中穿行16 小时前
建造者模式全方位深度解析
设计模式