定义
角色介绍:
Visitor:表示访问者的抽象类,用于声明对数据结构中xxx元素访问的visit(xxx)方法。
ConcreteVisitor:表示具体的访问者,继承Visitor并对其声明的抽象方法提供具体实现。
Element:表示元素的抽象类,即访问者实际要访问的对象,Element角色需要对访问者提供一个开放的接口,即accept方法,该方法的参数就是Visitor角色。
ConcreteElement:表示具体的元素,提供accept方法的实现。
ObjectStructure:负责处理Element元素的集合,即表示数据结构的类
总的来说就是:针对于对象结构的元素,定义新方法,在不改变该对象的前提下访问对象结构中的元素。
实现
使用访问者模式,使对象拥有像数组的push pop和splice方法。
1 | var Visitor = (function() { |