步骤一:建立抽象访问者
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); } }