关于设计模式的GoF书中有关Visitor
模式的说法:
访问者允许您定义新操作,而无需更改其操作元素的类。
我从那本书中读到了这个模式,但没有理解命名这种模式{@ 1}}背后的直觉。为什么称它为Visitor
?
答案 0 :(得分:3)
有这个受欢迎的法语表达/笑话:“Fais comme chez toi mais n'oublie pas que tu es chez moi”我会翻译“让自己在家里,但不要别忘了这是我的家“。
我认为很难准确地说出最初以这种方式命名模式的人的想法,但我认为直觉上它与“热情好客”概念的相似性。
类可以从其公共方法(门?)访问访问者。问题在于,不是试图根据访客/访客的具体行为采取具体行动,而是简单地将适当的行为委托给访客(让自己回家......)。也就是说,访客将使用其Host类的公共行为(不要忘记它是我的家......)。