我使用了访问者设计模式来解决我们系统中的一个问题。我参考了DoFactory网站和这个YouTube视频中的实现方法。
在DoFactory的例子中,访问者使用了一个返回类型为"void"的方法;而在YouTube视频中,作者使用了"double"。
我的疑问:
将解决方案呈现给公司CTO后,他同意将其称为访问者,但他认为如果访问者不是如GoF所述的"void",那么它就像是滥用了真正的访问者模式。
问题:
访问者模式是否需要返回"void"?
我的意思是,为了符合DoFactory(GoF)所描述的"真正的访问者模式",它必须是"void",还是可以是任何返回类型,并且仍然可以被称为"真正的访问者模式"?
double
而不是什么都不返回(void
)的原因,然后分析这些原因在这种情况/场景中是否有效。大多数时候,谈论纯粹这样或那样的模式有点低效。只需使用最适合您的方法即可,不必过多担心如何称呼它。如果您将它们称为访问者模式之一,大多数人仍会同意并理解您所说的内容:这是首要目标。让我们看看…定义“真实”。 - Leandro