步骤一:建立抽象访问者
public interface Visitor {
public void visit(Subject sub);
}
步骤二:具体访问者
public class MyVisitor implements Visitor {
@Override
public void visit(Subject sub) {
System.out.println("访问对象 : "+sub.getSubject());
}
}
步骤三:被访问对象 接口Subject
public interface Subject {
//接受将要访问它的对象
public void accept(Visitor visitor);
//getSubject()获取将要被访问的属性
public String getSubject();
}
步骤四:具体元素结点,实现抽象结点所规定的接受操作 MySubject
public class MySubject implements Subject{
@Override
public void accept(Visitor visitor) {
visitor.visit(this);
}
@Override
public String getSubject() {
return "happy";
}
}
步骤五:测试
public class Test {
public static void main(String[] args) {
Visitor visitor=new MyVisitor();
Subject sub=new MySubject();
sub.accept(visitor);
}
}