访问者模式
定义
表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变元素的类的前提下定义作用于这些元素的新操作。
结构
Visitor:抽象访问者类,为该对象结构中的每一个类声明visit操作。
ConcreteVisitor:具体抽象类,实现visit操作,将ConcreteElement作为方法参数。
Element:抽象元素类,定义一个accpet接口,将visior作为方法参数。
ConcreteElement:具体元素类,实现accept操作。
类图
抽象访问者:
abstract class Visitor {
private String action;
public abstract void visitConcreteElementA(ConcreteElementA concreteElementA);
public abstract void visitConcreteElementB(ConcreteElementB concreteElementB);
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
}
具体访问者A: