【发布时间】:2013-01-18 22:08:12
【问题描述】:
我在 http://en.wikipedia.org/wiki/Visitor_pattern
对这种模式的初步理解给人的印象是访问者模式与桥/策略模式相同。
那么这个具体的例子是否会产生这样的印象?有人可以解释其中的区别吗?可能在 Java 中有明确的例子?
【问题讨论】:
-
可以移到programmers.stackexchange.com
-
我也从来没有完全理解其中的区别;我认为这不值得投反对票——而且,如果你要投反对票,也请投一个近距离投票。 (不幸的是,在处理“企业代码”时,理解大量命名的“模式”似乎是一个“实际要求”。)
-
总之,当你在学习DP的时候,首先你需要知道的是“这个DP在解决什么问题”。访问者和策略正在解决根本不同的问题(在没有调用者意识的情况下更改实现 VS 使用提供的算法处理对象结构)。虽然结果可能看起来相似,但它们本质上是不同的,您可以通过使用方式看到差异。
-
@Ray 考虑“en.wikipedia.org/wiki/Visitor_pattern”中的示例正如您所引用的“Visitor 允许您在不更改其操作的元素的类的情况下定义新操作。”。你的意思是访问者接口有访问()方法。现在您可以添加 visit2()、visit3() 等方法,而无需更改 CarElement 子项,即它运行的类?我对么 ?但是谁会在不改变 accept() 方法的情况下调用这些新方法。
标签: java design-patterns strategy-pattern visitor-pattern bridge