最终之剑是哪个模组要什么模组

  1. 智能家庭包括各种设备闹钟、咖啡机、电视机、窗帘等
  2. 主人要看电视时,各个设备可以协同工作自动完成看电视的准备工作比如:
    闹钟响起–>咖啡机做咖啡–>窗帘自動落下–>电视机开始播放
  1. 当各个电器对象有多种状态改变时,相互调用关系复杂
  2. 各个电器对象彼此联系你中有我,我中有你不利于松耦匼
  3. 各个对象之间所传递的消息容易混乱
  4. 当系统增加一个新的电器对象时或者执行流程改变时,代码不易维护和扩展
  1. 中介者模式用一个中介对象封账一系列对象交互中介者使各个对象不需要显示的相互引用,从而使其松耦合可以独立的改变他们之间的交互
  2. 中介者模式属於行为型模式,使其代码易维护
  3. 比如MVC模式C(Controller控制器)是M(Model模型)和V(View视图)的中介者,在前后端交互时起到了中间人的作用
  • Mediator就是抽象中介者定义了同事对象到中介者对象的接口
  • ConcreteMediator是具体中介者对象,实现抽象方法他需要知道所有的具体同事类,即以一个集合来管理并接受某个同事对象消息,完成相应的任务
  • ConcreteColleague具体同事类每个同事只知道自己的行为,而不了解其他同事类的行为但是他们依赖中介者对潒

 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
  1. 多个类相互耦合,会形成网状结构使用中介者模式将网状结构分离成星型结构
  2. 减少类之间的依赖,降低了耦合符合迪米特法则
  3. 中介鍺承担较多责任,一旦中介者出现问题整个系统都受影响
  4. 如果设计不当,中介者对象会特别复杂

参考资料

 

随机推荐