《设计模式Design Pattern》读书笔记之二十一
Visitor模式
结构
目的
当一个对象(node)结构相对固定的时候,通过创建一个一个visitor对象来对这个结构中的所有node进行访问;而不是在各个node中创建一个一个成员函数;这样,该node结构不需要改变,可以随意增加visitor对象来增加对node结构的不同访问动作。
讨论
1, 如果node经常修改(增加/减少等),visitor模式并不适合。因为node的修改,会牵涉到修改所有visitor的接口。
2, node需要提供一定的函数来供visitor访问,这样会稍微破坏封装性。
3, 可以有三种方式进行对node结构进行便利:node本身,visitor,一个iterator
参考资料
《Design Pattern》 Gang-Of-4 1997