设计模式之中介者模式
分类:
文章
•
2025-01-29 12:57:22
1.中介者模式定义
- 中介者模式(Mediator Pattern),用一个中介对象来封装一系列的对象交互,中介者使各个对象不需要显示的相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互
- 中介者模式属于行为性模式,使代码易于维护
- 如MVC模式,C(controller控制器)是M(Model模型)和V(View视图)的中介者,在前后端交互时起到了中间人的作用

- Mediator是抽象中介者,定义了同事对象到中介者对象的接口
- ConcreteMediator:具体的中介者对象,实现抽象方法,需要知道所有具体同事类,就是一个集合来管理HashMap,并接受某个同事对象消息,完成相应的操作
- Colleague:抽象同事类
- ConcreteColleague:具体的同事类,会有很多,每个同事只知道自己的行为,不了解其他同事的行为方法,但是他们都依赖于中介者对象
2.中介者模式应用 (智能家庭管理)

- 创建ConcreteMediator对象
- 创建各个同事类对象,如TV等
- 在创建同事类对象时,直接通过构造器,加入到colleagueMap中
- 同事类对象,可以调用sendMessage,最终会去调用ConcreteMediator的getMessage方法
- getMessage会根据接收到的同事对象发出的消息来协调调用其他同事对象
- 可以看到getMessage是核心方法,完成相应操作
3.中介者模式总结
- 多个类相互耦合,会形成网状结构,使用中介者模式将网状结构分离为星型结构,进行解耦
- 减少类之间的依赖,降低了耦合,符合迪米特原则
- 中介者承担了较多的责任,一旦中介者出现问题,整个系统就会受到影响
- 如果设计不当,中介者对象本身变得过于复杂。