知识卡片

访问者模式的定义与五个角色

普通读书笔记卡 · 1993.a

内容

访问者模式在不改变数据结构前提下定义新操作,是[[把易变的展示逻辑从元素类中抽离出来]]的 正式方案,含五角色:Visitor抽象访问者、ConcreteVisitor具体访问者、Element抽象元素 (声明accept)、ConcreteElement具体元素(写法visitor.visit(this))、 ObjectStructure结构对象。发散:该写法把重载选择交给实际类型决定,是双分派关键。

参考来源

- 位置:《设计模式之禅(第2版)》第25章《访问者模式》(源文件:_epub-src/text/part0115.html) - 结论依据:原文给出访问者模式定义并说明Visitor、ConcreteVisitor、Element、ConcreteElement、ObjectStructure五个角色的职责,展示ConcreteElement的accept方法固定写法为`visitor.visit(this)`。 - 原始内容:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作……ConcreteElement——具体元素,实现accept方法,通常是visitor.visit(this),基本上都形成了一种模式了。