欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
places.add(new Park());
} @Override public void accept(Visitor visitor)
{ System.out.println(“City is accepting visitor.”);
visitor.visit(this);
for (Element e : places) { e.accept(visitor);
} }} class Museum implements Element {
@Override public void accept(Visitor visitor) { System.out.println(“Museum is accepting visitor.”);
visitor.visit(this);
}} class Park implements Element { @Override public void accept(Visitor visitor)
{ System.out.println(“Park is accepting visitor.”);
visitor.visit(this); } } public class TestVisitor { public static void main(String[] args)
{ FirstTimeVisitor visitor = new FirstTimeVisitor();
City city = new City(); city.accept(visitor); }}
输出
City is accepting visitor.
I’m visiting the city!
Museum is accepting visitor.
I’m visiting the Museum!
Park is accepting visitor.
I’m visiting the Park!
JDK中的 Visitor 模式
javax.lang.model.element.AnnotationValue 明显使用了 Visitor pattern, 但它很少被正规项目使用
[1][2]
你曾经说,等我们老的时候,