访客模式命名背后的原因是什么?

时间:2013-01-30 09:39:30

标签: design-patterns visitor

关于设计模式的GoF书中有关Visitor模式的说法:

  

访问者允许您定义新操作,而无需更改其操作元素的类。

我从那本书中读到了这个模式,但没有理解命名这种模式{@ 1}}背后的直觉。为什么称它为Visitor

1 个答案:

答案 0 :(得分:3)

有这个受欢迎的法语表达/笑话:“Fais comme chez toi mais n'oublie pas que tu es chez moi”我会翻译“让自己在家里,但不要别忘了这是我的家“

我认为很难准确地说出最初以这种方式命名模式的人的想法,但我认为直觉上它与“热情好客”概念的相似性。

类可以从其公共方法(门?)访问访问者。问题在于,不是试图根据访客/访客的具体行为采取具体行动,而是简单地将适当的行为委托给访客(让自己回家......)。也就是说,访客将使用其Host类的公共行为(不要忘记它是我的家......)。