欢迎回家
我们一直在改变

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

原文来源: https://www.w3cschool.cn/java/java-visitor-pattern.html

赞(0)
未经允许不得转载:91coding » Java设计模式 – 访问者模式
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

立即登录   注册

91CODING 小白轻松上手,大牛稳健进步

关于我们免责声明