visitor模式理论及学术概念------------------- visitor模式进一步
一,访问者模式的角色:
抽象访问者:声明一个或者多个访问操作,形成所有的具体元素都要实现的接口
具体访问者:实现抽象访问者所声明的接口
抽象节点:声明一个接受操作,接受一个访问者对象作为参量
具体节点:实现了抽象元素所规定的接受操作
结构对象:遍历结构中的所有元素,类似List Set等
二,在什么情况下应当使用访问者模式
访问者模式应该用在被访问类结构比较稳定的时候,换言之系统很少出现增加新节点的
情况。因为访问者模式对开-闭原则的支持并不好,访问者模式允许在节点中加入方法,
是倾斜的开闭原则,类似抽象工厂。
三,访问者模式的缺点:
1,增加节点困难
2,破坏了封装
因为访问者模式的缺点和复杂性,很多设计师反对使用访问者模式。个人感觉应该在了解的
情况下考虑衡量选择。
最后的部分:
看完本文,如果你对visitor模式有更多的兴趣,想了解更多请看如下几篇文章。
1,静态分派,动态分派,多分派,单分派 -------------- visitor模式准备
2,访问差异类型的集合类 ------------------------ visitor模式入门
3,visitor模式理论及学术概念------------------- visitor模式进一步(本文)
4,重载overloading和覆写overriding哪个更早执行-- visitor帮助篇
虽然排列顺序是1,2,3,4 但是我个人建议的学习方式是2,1,3,4因为这个顺序更方便一般人理解