访问者模式(Visitor Pattern)是GoF提出的23种设计模式中的一种,属于行为模式。据《大话设计模式》中说算是最复杂也是最难以理解的一种模式了。 定义(源于GoF《Design Pattern》):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。 从定义可以看出结构对象是使用访问者模式必备条件,而且这个结构对象必须存在遍历自身各个对象的方法。这便类似于Java语言当中的collection概念了。
访问者模式是一种处理任意数据结构的简单技术。
The visitor pattern is a simple technique to process arbitrary data structures.
问题在于,我们能否在不使用递归的前提下实现访问者模式?
The question is, can we implement the Visitor pattern without recursion?
无论使用哪种语言,访问者模式都是操作树形数据的一种可靠工具。
In each case, I've found that the Visitor pattern is a reliable tool for manipulating trees of data.
应用推荐