《设计模式Design Pattern》读书笔记之十五
Mediator模式
结构
目的
为了减少大量的对象(colleague)之间互相通信的复杂性,创建一个中间人--mediator(类似于HUB);这样,各个colleague只要建立跟mediator之间的联系,而不需要直接跟各个colleague直接连接。各个colleague之间的通信完全通过mediator进行处理。
优点
1, Mediator减少了各个colleague之间的耦合度,提高了colleague的再利用能力。
2, 如果需要改变各个colleague之间的通信行为,不需要派生colleague本身,只要派生一个Mediator类就可以完成。
3, 用One-to-many的关系代替了Many-to-many的关系,更加简单和易于理解,维护,扩展。
缺点
Mediator可能会变得很复杂。
讨论
1, 创建一个abstract Mediator并不是必须的。如果各个colleague只会跟一个mediator通信,那么就不需要abstract Mediator;但是有了abstract Mediator更加灵活,可以派生一个Mediator来改变colleague之间的通信行为。
2, Mediator和各个colleague之间的One-to-many的关系可以使用Observer模式来实现,从而达到一个colleague更新后,通过mediator通知所有的colleague。
参考资料
《Design Pattern》 Gang-Of-4 1997