14.中介者模式
Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explicitly,and it lets you vary their interaction independently.用一个中介对象封装一系列的对象交互,中介者使个对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
中介者模式的优点:减少类间的依赖,把原有的一对多的依赖变成了一对一的依赖,同事类只依赖中介者,减少了依赖,当然同时也降低了类间的耦合。
中介者模式的缺点:中介者会膨胀的很大,而且逻辑复杂。
中介者模式的实际应用:
- 机场调度中心
- MVC框架,其中的Controller就是一个中介者,它的作用就是把Model和View隔离开,协调M和V协同工作,把M运行的结果和V代表的视图融合成一个前端可以展示的页面,减少M和V的依赖关系
- 媒体网关
- 中介服务
可以在如下的情况下尝试使用中介者模式:
- N个对象之间产生了相互的依赖关系(N>2)
- 多个对象有依赖关系,但是依赖的行为尚不明确或者有发生改变的可能
- 产品开发,MVC框架