Design Pattern:
模式:元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。
故事场景:今天骑士队球员今天下午要看咱们勇士篮球馆,我们可以接受,和他们介绍我们多少人,球场大小 但是今天下午训练的战术不要介绍
勇士篮球馆 自带属性 并且带上接受accept()
public class WarriorsCourt {
public WarriorsCourt(String tactics, long member, String size) {
this.tactics = tactics;
this.member = member;
this.size = size;
}
private String tactics;
private long member;
private String size;
public void accept(WarriorsCourtVisitor visitor){
visitor.visit(this);
}
public String getTactics() {
return tactics;
}
public void setTactics(String tactics) {
this.tactics = tactics;
}
public long getMember() {
return member;
}
public void setMember(long member) {
this.member = member;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
}
Visitor类 这个是用来对外暴露类部分属性
public class WarriorsCourtVisitor {
public void visit(WarriorsCourt court){
System.out.println("篮球能容纳人数"+court.getMember());
System.out.println("篮球场大小"+court.getSize());
}
}
实验的开始
public class VisitorDemo {
public static void main(String[] args) {
WarriorsCourt court = new WarriorsCourt("普林斯顿战术",15,"2000平方");
WarriorsCourtVisitor visitor = new WarriorsCourtVisitor();
court.accept(visitor);
}
}
结果
