0

GoF 关于设计模式的书说这个Visitor模式:

Visitor 允许您定义一个新的操作,而无需更改它所操作的元素的类。

我从那本书中阅读了该模式,但未能理解命名该模式背后的直觉Visitor。为什么叫它Visitor

4

1 回答 1

3

有一个流行的法语表达/笑话:“Fais comme chez toi mais n'oublie pas que tu es chez moi”,我将其翻译为“让自己在家,但不要忘记这是我的家”

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

类可以将其公共方法(门?)的访问权限授予访问者。问题是,该类不会尝试根据访客/客人的身份采取特定行动,而是简单地将适当的行为委托给访客(让自己回家......)。也就是说,Visitor 将使用其 Host 类的公共行为(不要忘记它是我的家……)。

于 2013-01-30T15:06:50.667 回答