发布网友 发布时间:6小时前
共1个回答
热心网友 时间:5小时前
使用Visitor模式的前提
使用访问者模式是对象群结构中(Collection) 中的对象类型很少改变。
在两个接口Visitor和Visitable中,确保Visitable很少变化,也就是说,确保不能老有新的Element元素类型加进来,可以变化的是访问者行为或操作,也就是Visitor的不同子类可以有多种,这样使用访问者模式最方便.
如果对象集合中的对象集合经常有变化, 那么不但Visitor实现要变化,Visistable也要增加相应行为,GOF建议是,不如在这些对象类中直接逐个定义操作,无需使用访问者设计模式。
但是在Java中,Java的Reflect技术解决了这个问题,因此结合reflect反射机制,可以使得访问者模式适用范围更广了。Reflect技术是在运行期间动态获取对象类型和方法的一种技术