Java 访问者模式

Java设计模式 – 访问者模式

在访问者模式中,元素对象接受访问者对象,而访问者对象处理元素对象上的操作。

此模式是一种行为模式。

通过这种方式,可以从不同的访问者改变元素的执行算法。

例子

class TreeNode {
  private String name;
  public TreeNode(String name) {
    this.name = name;
  }
  public String getName() {
    return name;
  }
  public void accept(NodeVisitor v) {
    v.visit(this);
  }
}
interface NodeVisitor {
  public void visit(TreeNode n);
}
class ConsoleVisitor implements NodeVisitor {
  @Override
  public void visit(TreeNode n) {
    System.out.println("console:" + n.getName());
  }
}

class EmailVisitor implements NodeVisitor {
  @Override
  public void visit(TreeNode n) {
    System.out.println("email:" + n.getName());
  }
}

public class Main {
  public static void main(String[] args) {

    TreeNode computer = new TreeNode("w3cschool.cn");
    computer.accept(new ConsoleVisitor());
    computer.accept(new EmailVisitor());
  }
}

上面的代码生成以下结果。

console:w3cschool.cn email:w3cschool.cn

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Java 访问者模式》
文章链接:https://zhuji.vsping.com/292625.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。