设计模式之中介者模式
中介者模式基本介绍
1)中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互
2)中介者模式属于行为型模式,使代码易于维护
3)比如MVc模式,c (Controller控制器)是M (Model模型)和v (View视图)的中介者,在前后端交互时起到了中间人的作用
中介者模式原理类图
原理类图说明
1.Mediator就是抽象中介者,定义了同时对象到中介者的接口 2.Colleague是抽象同事类 3.ConcreteMediator具体的中介者对象,实现抽象方法,它需要知道 所有的具体的同事类,即以一个集合来管理HashMap,并接收某个同事对象的消息,完成某个任务 4.ConcreteColleague具体的同事类(会有很多),每个同事只知道自己的行为,而不了解其他同事类的行为(方法) 但是他们都依赖中介者对象
中介者模式解决智能家庭管理问题
智能家庭项目
1.智能家庭包括各种设备,闹钟、咖啡机、电视机、窗帘等
2.主人要看电视时,各个设备开始协同工作,自动完成看电视的准备工作,比如流程为:闹钟响->咖啡机做咖啡->窗帘自动落下->电视机开始播放
思路分析类图
中介者模式的注意事项和细节
1.多个类相互耦合,会形成网状结构,使用中介者模式将网状结构分离为星型结构,进行解耦 2.减少类间依赖,减低了耦合,符合迪米特法则 3.中介者承担了较多的责任,一旦中介者出现了问题,整个系统就会受到影响 4.如果设计不当,中介者对象本身变得过于复杂,实际使用时注意