·被访问者接口实现类
使用访问者模式前提是对象群结构中(Collection) 中的对象类型很少改变。
在两个接口Visitor和Visitable中,确保Visitable很少变化,也就是说,确保不能老有新的Element元素类型加进来,可以变化的是访问者行为或操作,也就是Visitor的不同子类可以有多种,这样使用访问者模式最方便.
如果对象集合中的对象集合经常有变化, 那么不但Visitor实现要变化,Visistable也要增加相应行为,GOF建议是,不如在这些对象类中直接逐个定义操作,无需使用访问者设计模式。
--摘自www.jdon.com的《Visitor模式》 一节 原因: 如果Visitable中元素的类型是固定的或者很少变化的,那么即使Visitor中相应的访问行为发生改变了,对Visitable也没有影响。相反如果Visitable中元素的类型变化频繁,除了Visitable要增加新的类型,Visitor也要增加相应的visitXxx方法。所以说使用Visitor模式的一个前提是被访问者的类型很少改变