场景:图形系统,假设其图像种类稳定,而其可提供的操作变化。
结构
代码
要点:
1、本模式通过所谓双重分发来实现在不更改Element类层次结构的前提下,在运行时透明地为类层次结构上的各个类动态添加新的操作。
2、所谓双重分发即本模式中包含两个多态分发,第一个为Accept方法的多态辨析,第二个为Visit方法的多态辨析。
3、本模式最大的缺点在于扩展类层次结构(增加新的Element子类),会导致Visitor类的改变。因此本模式适用于“Element类层次结构稳定,而其中的操作却面临频繁变动”。