设计模式----Mediator(中介者)模式
GoF:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地互相引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。
OOD鼓励奖行为封装到各个对象中,也就是将变化点封装。但是有时候这种封装可能会导致对象间有许多连接。极端情况下,每个对象都知道其他所有对象。各个对象之间的交互比较多,每个对象的行为操作都依赖其他对象。修改一个对象的行为,很可能同时涉及到修改很多其他对象的行为。那么这时,可以使用Mediator模式将集体行为封装在一个“中介者”对象中以避免这个问题。使用Mediator模式可以使各个对象间的耦合松散,只要关心每个对象和Mediator的关系,这样使多对多的关系变成了一对多的关系,每个对象都和Mediator联系。降低了系统得复杂性,提高了可扩展性和可修改性。
下面是实例代码:


















































































































































































































下面是UML图:
Mediator模式看的有些快,基本概念和意思搞明白了。结合实际经验以前还没有碰到过适合用Mediator模式的场景。以后也尽量避免多类多对象之间的相互操作。
Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=987362