说明
- 封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。
角色
- 抽象访问者
- 具体访问者
- 抽象元素
- 具体元素
- 对象结构:能枚举它的内部元素,允许访问者访问它的元素
- 客户端
代码实现
public interface IVisit {
void visit(User user);
}
public class Visit implements IVisit {
@Override
public void visit(User user) {
user.doSomething();
}
}
public interface IUser {
void accept(IVisit visit);
}
public class User implements IUser {
private String name ;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void doSomething(){
System.out.println("可以访问");
}
@Override
public void accept(IVisit visit) {
visit.visit(this);
}
}
public class Test {
public static void main(String[] args){
IVisit visit = new Visit();
IUser user = new User();
user.accept(visit);
}
}