Java 访问者模式

2018-01-17 22:41 更新

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
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号