无废话C#设计模式之二十:Mediator
2009-04-02 08:22:59 来源:WEB开发网核心提示: l 中介者模式和观察者模式的区别是,前者应用于多对多杂乱交互行为的统筹处理,无废话C#设计模式之二十:Mediator(4),后者应用于一(多)对多关系的灵活定制,对于本例来说,如果还伴随着需求的改变,中介者角色可能会越来越难维护,集中处理后还需要分散处理,那么后半阶段的处理过程可以应用观
l 中介者模式和观察者模式的区别是,前者应用于多对多杂乱交互行为的统筹处理,后者应用于一(多)对多关系的灵活定制。对于本例来说,集中处理后还需要分散处理,那么后半阶段的处理过程可以应用观察者模式。对于前一节的例子来说,如果有多个主体角色和多个观察者进行多对多通讯的话,也可以应用中介者模式来统筹这个多对多的过程(大家可以自己尝试修改前一节的实例来应用中介者模式)。
l 中介者模式和门面模式的区别是,前者的各同事类需要依靠中介者进行双向通讯,应用于子系统之间,而后者的子系统往往不会通过门面去和调用方进行通讯,趋向于单向通讯,应用于子系列和更高层次的系统。本例中就有门面模式和中介者模式的影子。
l 中介者模式往往可以在构架的层次进行应用,有的时候和观察者模式以及门面模式一起使用,有的时候又会向观察者模式和门面模式退化。其实在应用模式的过程中不必过多考虑模式的准确定位,如果我们确实从中得以,那么这个名字就不重要了。
注意事项
l 不是所有的系统都需要应用中介者模式把多对多的关系转化为多对一对多的。如果各个同事之间本来的关联就很清晰(没有交错关联),或这种关联并不复杂,没有必要应用中介者。
l 在实际的应用过程中,中介者做的控制并不会向本例那样简单,它可能包含很多的处理逻辑。如果还伴随着需求的改变,中介者角色可能会越来越难维护,此时可以考虑对中介者角色或处理行为应用其它的一些设计模式。
系列文章:
无废话C#设计模式之一:开篇
更多精彩
赞助商链接