C++ QT设计模式:访问者模式

基本概念

访问者模式(Visitor Pattern)是一种行为型设计模式,它允许你在不改变被访问类的前提下,定义对其进行操作的新操作。

实现的模块有:

  • ObjectStructure(对象结构):用于存储 Element 对象,提供了遍历元素的方法。
  • Visitor(访问者):声明了对不同 Element 的访问方法。

  • ConcreteVisitor(具体访问者):实现了 Visitor 的访问方法,定义了对每种元素的具体访问逻辑。
  • Element(元素):定义了接受 Visitor 访问的方法。
  • ConcreteElement(具体元素):实现了 Element 的被访问方法,定义了接受访问者的具体逻辑。

使用场景

当不希望去修改一个类的内部结构,但是要给这个类添加大量操作时。
或者说,不希望对一个类的操作“污染”了这个类本身时。

实现

qFind

qFind 函数类似于 std::find 函数,但是现在已经过时,不建议使用。实现qFind的例子为:

QList<int> numbers = {1, 2, 3, 4, 5};
int index = qFind(numbers.begin(), numbers.end(), 3) - numbers. Begin();

在这个例子里:

qFind:具体访问者(Concrete Visitor),实现了具体的查找特定逻辑的功能。

int : ConcreteElement(具体元素),提供了qFind的访问方法。

QList<int> numbers :ObjectStructure(对象结构),储存了大量的int元素。

相关推荐

  1. 设计模式——访问模式

    2024-05-11 07:56:06       33 阅读
  2. 设计模式访问模式

    2024-05-11 07:56:06       14 阅读
  3. 设计模式访问模式

    2024-05-11 07:56:06       12 阅读
  4. 【前端设计模式】之访问模式

    2024-05-11 07:56:06       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-11 07:56:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-11 07:56:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-11 07:56:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-11 07:56:06       20 阅读

热门阅读

  1. Php 线程

    2024-05-11 07:56:06       11 阅读
  2. iOS面试题链接汇总

    2024-05-11 07:56:06       12 阅读
  3. es终止快照恢复进程的方法

    2024-05-11 07:56:06       12 阅读
  4. 设计模式:访问者模式

    2024-05-11 07:56:06       12 阅读
  5. HTML批量文件上传3—Servlet批量文件处理FileUpLoad

    2024-05-11 07:56:06       14 阅读
  6. 【Linux】如何查看Linux命令的使用方法

    2024-05-11 07:56:06       15 阅读
  7. SpringBoot MockMvc

    2024-05-11 07:56:06       10 阅读
  8. 【Redis7】10大数据类型之HyperLogLog类型

    2024-05-11 07:56:06       9 阅读
  9. 概率论学习-笔记1

    2024-05-11 07:56:06       12 阅读