| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C++实现访问者模式 -> 正文阅读 |
|
[C++知识库]C++实现访问者模式 |
一、访问者模式基础知识1.1 模式动机? ? ? ?对于系统中的某些对象中可能存在多种不同类型的元素,而且不同的调用者使用这些元素时也有所区别,这些调用者称为访问者。 ? ? ? ? 访问者模式(Visitor Pattern):表示一个作用于某对象结构中各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 访问者模式的应用场景:
1.2 访问者模式结构?访问者模式中对象结构存储了不同类型的元素对象,以提供不同访问者访问。访问者模式包括两个层次结构,一个是访问者层次结构,提供了抽象访问者和具体访问者,一个是元素层次结构,提供了抽象元素和具体元素。 相同的访问者可以以不同的方式访问不同的元素,相同的元素可以接受不同访问者以不同的方式访问。 (1)Visitor (抽象访问者) 抽象访问者为对象结构类中每一个具体元素类声明一个访问操作。 (2)ConcreteVisitor (具体访问者) 具体访问者实现了每个由抽象访问者声明的操作,每一个操作用于访问对象结构中一种元素类型的元素。 (3)Element(抽象元素) 抽象元素一般是抽象类或接口,定义一个accept()方法,该方法以一个抽象访问者作为参数。 (4)ConcreteElement (具体元素) 具体访问者实现了accept()方法,在其accept() (5)ObjectStructure(对象结构) 对象结构是一个元素的集合,它用于存放元素对象,并且提供了遍历其内部元素的方法。 1.3 访问者模式优缺点访问者模式优点:
模式的缺点:
1.4 访问者模式应用
参考文献: 【1】访问者模式(c++实现):访问者模式(c++实现) - 鬼谷子com - 博客园 【2】C++设计模式之访问者模式:?https://www.jb51.net/article/55999.htm |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 13:52:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |