Bootstrap

Java设计模式——中介者模式

Java设计模式——中介者模式

  • 需求——智能家居
    1)智能家庭包括各种设备:闹钟、咖啡机、电视机、窗帘等。
    2)主人要看电视时,各个设备可以协同工作,自动完成看电视的准备工作,比如流程为:闹铃响起——咖啡机开始做咖啡——窗帘自动落下——电视机开始播放。
  • 案例——租房子
    • 类图(传统方式)在这里插入图片描述
    • 类图(引入中介者)在这里插入图片描述
  • 传统模式
    • 类图在这里插入图片描述

    • 问题分析
      1)当各个电器对象有多重状态改变时,相互之间的调用关系会比较复杂。
      2)各个电器对象彼此联系,你中有我,我中有你,不利于松耦合。
      3)各个电器对象之间所传递的消息(参数),容易混乱。
      4)当系统增加一个新的电器对象时,或者执行流程改变时,代码的可维护性、扩展性都不理想——>考虑 中介者模式

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

    • 类图

;