Welcome

首页 / 软件开发 / .NET编程技术 / .Net设计模式实例之访问者模式(Visitor Pattern)

.Net设计模式实例之访问者模式(Visitor Pattern)2011-05-06 博客园 灵动生活一、访问者模式简介(Brief Introduction)

表示一个作用于某对象结构中的元素操作。它使你可以在不改变各元素类的前提下定义 作用于这些元素的新操作,它把数据结构和作用于结构上的操作之间的耦合性解脱开,使的 操作结合可以相对自由地演化。优点是增加新的操作很容易,因为增加一个新的操作就意味 着增加一个新的访问者,访问者模式将有关的行为集中到一个访问对象中。

二、解决的问题(What To Solve)

访问者模式的目的是要把处理从数据结构分离出来。如果系统有比较稳定的数据结构, 又有易于变化的算法的话,使用访问者模式是个不错的选择,因为访问者模式使的算法操作 的增加变的容易。相反,如果系统的数据结构不稳定,易于变化,则此系统就不适合使用访 问者模式了。

三、访问者模式分析(Analysis)1、访问者模式结构

Visitor:为对象结构中Element的每一个子类声明一个Visitor操作。

ConcreteVisitor1、ConcreteVisitor2:具体的访问者,实现父类Visitor的操作。每个 操作实现算法的一部分,而该算法片段仍是对应与结构中对象的类。

ObjectStructure:枚举它的元素,可以提供一个高层的接口以允许访问者访问它的元素 。

Element:定义一个Accept操作,它以一个访问者为参数。

ConcreteElementA、ConcreteElementB: 具体元素,实现父类Element的方法Accept。