Java Vistor 设计模式

欢迎进入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]

你曾经说,等我们老的时候,

Java Vistor 设计模式

相关文章:

你感兴趣的文章:

标签云: