策略,访客和模板方法之间的区别是什么?
我正在上课,我们刚刚了解了这些设计模式。但是我看不出它们之间有什么区别。它们听起来像是一样的,在抽象的类上创建具体的类。有人可以帮我解决这个疑问吗?谢谢 (:
没有找到相关结果
已邀请:
2 个回复
癸痊醒
然后将其应用于“Foo”类型的对象列表。我们真的没有其他方法可以将它应用于任何其他对象。 另一方面,当我们想要将算法应用于可能不共享相同签名但具有相同成员函数的一堆对象时,使用访问者模式。我们说访问者模式,因为它经常在遍历树或其他“无关”对象集合时使用(在继承意义上无关)。
在这里,我们的想法是,我们想“提升”所有这些对象。它们都不共享相同的成员函数签名,但都与概念相关。因此,我们可以“访问”这些类中的每一个,但期望算法执行相同类型的任务。 通过使用访问者模式,我们避免了将每个类包装在代理模式中的需要。因此,对于N个类,我们想要应用此算法,我们不需要生成N个代理类。我们只需要向访问者类添加N个方法。 模板方法与访问者和策略模式完全不同。使用模板您要尝试执行的操作是强制执行相同类型的算法,但是在层次结构中的不同子类上。例如:
因此算法的结果在层次结构内变化。
娜拐赐巫潭