增加操作意味着增加一个visitor类的子类,而不是在visitor中增加一个方法。
GoF说增加新的ConcreteElementx,那么当然应该在visitor中添加方法VisitConcreteElementx(ConcreteElementx),对应的每个visitor子类都要添加。banq说的:可见使用Visitor模式是有前提的,在两个接口Visitor和Visitable中,确保Visitor很少变化,变化的是Visitable,这样使用Visitor最方便.注意,这里visitor里面的类型也就是gof中的concreteElement, 应该是很少变化。
|
|