动机:表示一个作用于某对象结构中的各元素的操作。它可以在不改变各元素的类的前提下定义作用于这些元素的新的操作。


场景:图形系统,假设其图像种类稳定,而其可提供的操作变化。


结构
设计模式学习笔记二十四——Visitor模式


代码
设计模式学习笔记二十四——Visitor模式namespace DesignPattern.Visitor
}

设计模式学习笔记二十四——Visitor模式namespace DesignPattern.Visitor
}

设计模式学习笔记二十四——Visitor模式namespace DesignPattern.Visitor
}


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

相关文章: