设计模式之中介者模式

1.中介者模式定义

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

设计模式之中介者模式

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

2.中介者模式应用 (智能家庭管理)

设计模式之中介者模式

  1. 创建ConcreteMediator对象
  2. 创建各个同事类对象,如TV等
  3. 在创建同事类对象时,直接通过构造器,加入到colleagueMap中
  4. 同事类对象,可以调用sendMessage,最终会去调用ConcreteMediator的getMessage方法
  5. getMessage会根据接收到的同事对象发出的消息来协调调用其他同事对象
  6. 可以看到getMessage是核心方法,完成相应操作 

 3.中介者模式总结

  • 多个类相互耦合,会形成网状结构,使用中介者模式将网状结构分离为星型结构,进行解耦
  • 减少类之间的依赖,降低了耦合,符合迪米特原则
  • 中介者承担了较多的责任,一旦中介者出现问题,整个系统就会受到影响
  • 如果设计不当,中介者对象本身变得过于复杂。