Java 訪問者模式

2018-01-17 22:41 更新

Java設(shè)計模式 - 訪問者模式


在訪問者模式中,元素對象接受訪問者對象,而訪問者對象處理元素對象上的操作。

此模式是一種行為模式。

通過這種方式,可以從不同的訪問者改變元素的執(zhí)行算法。

例子

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());
  }
}

上面的代碼生成以下結(jié)果。

console:w3cschool.cn
email:w3cschool.cn
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號