它的本质就是将数据与操作解开,使得操作集合可以自由的演化。
最直达本质的一个点是,被访问者的accpet方法
public void accpet(Visitor visitor){
visitor.visit(this);//访问者的visit方法对不同的类型做了重载
}
访问者模式也有不少缺点:
- 被访问者的数据必须要暴露出去
- 需要要求数据是稳定的,一旦变化需要波及到许多visitor
- 访问者依赖于具体的类而非抽象
它的本质就是将数据与操作解开,使得操作集合可以自由的演化。
最直达本质的一个点是,被访问者的accpet方法
public void accpet(Visitor visitor){
visitor.visit(this);//访问者的visit方法对不同的类型做了重载
}
访问者模式也有不少缺点: