返回首页

介绍
我遇到这种设计模式,而我现有的解决方案,以宣传对象的属性的依赖对象
其实,quot问题。Propagatorquot;基础上知名的quot; Observerquot;设计模式在这被称为主体对象持有的观察员名单,并自动通知任何状态变化。
不同的是,quot; Propagatorquot,使得它可以构造每个对象是"Subjectquot;和quot; Observerquot;互换。的传播者
模式背后的想法是建立一个网络依赖的对象发生变化时,推动通过传播者它的所有后代。
让我们给上面的图中的每一个演员的简要说明:IPropagator接口包含用于添加/删除依赖的对象和处理状态改变的方法。传播类,实现了IPropagator接口,并包含
quot; AddHandlerquot;管理的代表名单发生变化时,被调用的方法。类的StateChange代表变革本身。StateChangeOptions枚举允许指定一个变更传播选项。
最后的用法很简单 - 我们只需要调用quot; Processquot相应的传播方法与最近的变化同步的所有对象。
传播者,随着一个漂亮的代码示例设计模式的详细描述,可以发现在后由Martijn Boeker。
就是这样,
标记。{S1}

回答

评论会员:游客 时间:2012/02/06
vallarasus:这是一个很好的提示,不改变CTOR虚拟成员,希望这是工厂模式。{S2的}可能不须制作几乎每一个类的密封,它可能导致一个懒惰的开发,经过多年重复的代码,只是因为它标志着密封!{中三}
zenwalker1985:是的,它不总是需要。但是,开始凭借其良好的实践,使其密封。后,当你想延长,使刚刚启封和你的好去

感谢和你的票非常感谢
评论会员:游客 时间:2012/02/06
加里・诺特:您提供的示例代码有错误codeprelang="c#"spanclass="code-keyword"class/spanCustomClass{spanclass="code-keyword"private/spanProcess_someProcess;spanclass="code-keyword"public/spanspanclass="code-keyword"void/spanSomeMethod(){spanclass="code-comment"///spanspanclass="code-comment"Doessomeworkwiththeprocess}}/span/pre/code应该是:{C}正如你可以(和/或应该)看到,所不同的是,当使用诸如单行,正斜杠commentors了最后两个评论非常需要正确的括号,或"}"所以,现在你知道享受。〜[不]视觉[IZE]基本[S]C#[LY]〜的ASPX:苹果只需出色执行
zenwalker1985
评论会员:游客 时间:2012/02/06
哦,格式问题。没有看到。感谢imgsrc=http://www.orcode.com/img/ico/smiley_smile.gif的