C++设计模式之访问者模式设计模式之访问者模式
主要介绍了C++设计模式之访问者模式,本文讲解了什么是访问者模式、访问者模式的UML类图、访问者模式的实
现代码等内容,需要的朋友可以参考下
前言前言
这是23+1(简单工厂模式)之中的最后一个了——访问者模式。访问者模式也是一个比较麻烦的设计模式。我也没有实战经
验,对于访问者模式的理解完全来自GOF的《设计模式:可复用面向对象软件的基础》,而这篇文章就是根据对这本书的理解而
写出来的。在读《设计模式:可复用面向对象软件的基础》的时候,让我想起自己做过的一个项目,该项目虽然没有使用访问者
模式,但是,今天理解了该模式,如果使用该模式对之前做过的项目进行重构,将是一个不错的想法。
访问者模式访问者模式
在GOF的《设计模式:可复用面向对象软件的基础》一书中对访问者模式是这样说的:表示一个作用于某对象结构中的各元素的
操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式把数据结构和作用于结构上的操作
之间的耦合解脱开,使得操作集合可以相对自由地演化。该模式的目的是要把处理从数据结构分离出来。访问者模式让增加新
的操作很容易,因为增加新的操作就意味着增加一个新的访问者。访问者模式将有关的行为集中到一个访问者对象中。现在再
来说说我之前经历过的那个项目。
是基于Windows Shell开发的一个项目,在一个容器中存储了很多的Shell Items,同时定义了对Items的操作,由于项目一直都
在进行后期扩展,对Items的操作在后期都需要进行扩展的;而现在的做法是,定义一个操作类,该操作类中定义了一个集合,
该集合存放Items,在该操作类中扩展对应的操作方法。现在想想如果使用访问者模式也是可以的,由于Items集合是固定的,
当需要扩展集合的操作时,只需要添加对应的访问者即可。
UML类图类图
Visitor(访问者):为该对象结构中ConcreteElement的每一个类声明一个Visit操作。该操作的名字和特征标识了发送Visit请求
评论0
最新资源