访问者模式
定义:访问者模式主要是对保存在数据结构中的元素来处理,不改变数据的结构,对数据操作
拿一个例子来说
一个旅游的类
public class Travel {
private String hk = "hk";
private String beijing = "beijing";
private String shanghai = "shanghai";
private String chengdu = "chengdu";
public void visitor(IVisitor iVisitor){
iVisitor.chooseBeijing(beijing);
iVisitor.chooseChengdu(chengdu);
iVisitor.chooseHk(hk);
iVisitor.chooseShanghai(shanghai);
}
}
选择去哪一个地方的接口,实现数据Travel和结构的分离
public interface IVisitor {
void chooseBeijing(String beijing);
void chooseChengdu(String chengdu);
void chooseShanghai(String shanghai);
void chooseHk(String hk);
}
实现类
public class Person implements IVisitor {
@Override
public void chooseBeijing(String beijing) {
System.out.println("张三去:"+ beijing);
}
@Override
public void chooseChengdu(String chengdu) {
System.out.println("张三去:"+ chengdu);
}
@Override
public void chooseShanghai(String shanghai) {
System.out.println("张三去:"+ shanghai);
}
@Override
public void chooseHk(String hk) {
System.out.println("张三去:"+ hk);
}
}
启动类
public static void main(String[] args) {
Travel travel = new Travel();
IVisitor iVisitor = new Person();
travel.visitor(iVisitor);
}
这里,模拟了一个非常简单的访问者模式,主要是现实了不改变数据结构对数据的操作