Mediator 模式的目的是定义一个对象,封装一组对象间的交互,这样就降低了交互对象间的耦合,使对象和他们参考的对象显示地分离,就可以独立地变化他们之间的关系.
条件:对象间的交互和对象的其他行为比较独立.
Mediator模式和Singleton模式一样都背离了面向对象的分散责任的理念,而是集中责任,只不过前者是针对特殊对象,后者是针对所有客户端.
应用:
1,典型的应用是,GUI Mediators
2,关系一致性Mediators (relational integrity)
对比: 都是从一个类移出一部分到一个新类的模式有如下几个设计模式
Facade 可以帮助重构大部分应用
Bridge 移动抽象操作到一个接口
Observer 重构代码 支持MVC架构
Flyweight 把对象中固定不变的部分提出,可以共享
Builder 把对象的构造方法逻辑移出来成为实例
Factory Method 减少一个类的责任,移出类行为的一个方面到另外一个类,他们是平行的层级
State ,Strategy 移出特殊的状态,特殊的策略 行为 到其他类