JSRUN 用代码说话

访问者模式

编辑教程

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("123.cn");
    computer.accept(new ConsoleVisitor());
    computer.accept(new EmailVisitor());
  }
}

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

console:123.cn
email:123.cn
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟