在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。
主要将数据结构与数据操作分离。稳定的数据结构和易变的操作耦合问题。
结构图

角色与理解
- 访问者模式共分为五种角色:
- Visitor (抽象访问者):内部声明一个对每一个具体元素进行访问的操作。
- Concrete Visitor (具体访问者):继承抽象访问者,实现对所有具体元素的一种访问操作。
- Element (抽象元素):声明accept()方法,以抽象访问者作为参数,供访问者访问。
- Concrete Element (具体元素):实现accept()方法,调用访问者的访问方法以完成访问者对自身的访问。
- Object Structure (对象结构):存储并管理元素,提供一个入口,使所有元素被访问。
- 被访问者提供访问入口,使自身的数据被访问者访问。
核心代码
- 抽象访问者

- 具体访问者

- 抽象元素

- 具体元素

- 对象结构

- 客户端

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
算法
+关注
关注
23文章
4760浏览量
97126 -
存储管理
+关注
关注
0文章
31浏览量
9569
发布评论请先 登录
相关推荐
热点推荐
基于入侵行为模式的告警关联
本文提出了一种基于入侵行为模式的告警关联方式。入侵行为模式是定义在时间基础上的一组谓词公式,其实质是通过时间限制联系在一起的入侵事件的集合。该方法在对大量告
发表于 08-13 08:35
•6次下载
Java设计模式(二十一):中介者模式
中介者模式(Mediator Pattern) 中介者模式(Mediator Pattern): 属于对象的行为
发表于 01-24 11:28
•404次阅读
嵌入式软件设计模式 好文值得收藏
本文引用自本人公众号文章: 嵌入式开发中的两点编程思想 C语言也很讲究设计模式?一文讲透 包含如下: 01)C语言和设计模式(继承、封装、多态) 02)C语言和设计模式(访问者
UVM设计模式之访问者模式
Visitor Pattern: 允许一个或者多个操作应用到一组对象上,解耦操作和对象本身。换言之,如果component的数据结构是比较稳定的,但其是易于变化的,那么使用访问者模式是个不错的选择。

设计模式行为型:访问者模式
评论