预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C#面向对象设计模式纵横谈 17.Mediator中介者(行为型模式) 李建忠 jianzhong.lee@gmail.com 设计模式论坛: forum.softcompass.com 上海祝成科技高级培训讲师 www.softcompass.com 依赖关系的转化 动机(Motivation) 在软件构建过程中,经常会出现多个对象互相关联 交互的情况,对象之间常常会维持一种复杂的引用 关系,如果遇到一些需求的更改,这种直接的引用 关系将面临不断的变化。 在这种情况下,我们可使用一个“中介对象”来管理 对象间的关联关系,避免相互交互的对象之间的紧 耦合引用关系,从而更好地抵御变化。 意图(Intent) 用一个中介对象来封装一系列的对象交互。中介者使 各对象不需要显式的相互引用,从而使其耦合松散, 而且可以独立地改变它们之间的交互。 ——《设计模式》GoF 例说Mediator应用 CodesinVS.NET 结构(Structure) Mediator模式的几个要点 •将多个对象间复杂的关联关系解耦,Mediator模 式将多个对象间的控制逻辑进行集中管理,变“多 个对象互相关联”为“多个对象和一个中介者关 联”,简化了系统的维护,抵御了可能的变化。 •随着控制逻辑的复杂化,Mediator具体对象的实 现可能相当复杂。这时候可以对Mediator对象进 行分解处理。 •Façade模式是解耦系统外到系统内(单向)的对 象关联关系;Mediator模式是解耦系统内各个对 象之间(双向)的关联关系。 .NET架构中的Mediator CodesinVS.NET 推荐资源 •《设计模式:可复用面向对象软件的基础》GoF •《面向对象分析与设计》GradyBooch •《敏捷软件开发:原则、模式与实践》RobertC.Martin •《重构:改善既有代码的设计》MartinFowler •《RefactoringtoPatterns》JoshuaKerievsky 获取更多MSDN资源 •MSDN中文网站 http://www.microsoft.com/china/msdn •MSDN中文网络广播 http://www.msdnwebcast.com.cn •MSDNFlash http://www.microsoft.com/china/newsletter/case/ msdn.aspx •MSDN开发中心 http://www.microsoft.com/china/msdn/Developer Center/default.mspx Question&Answer 如需提出问题,请单击“提问”按钮并在 随后显示的浮动面板中输入问题内容。一 旦完成问题输入后,请单击“提问”按钮。