QT设计模式:代理模式

基本概念

代理模式(Proxy Pattern)是一种结构型设计模式,它允许你提供一个代理对象,以控制对其他对象的访问。

代理通常在客户端和实际对象之间充当中介,用于控制对实际对象的访问(如登录控制),以提供额外的功能(如缓存),或者在访问实际对象之前进行一些预处理(如延迟加载)。

代理模式实现的模块有:

  • Subject(主题):定义了RealSubject和Proxy的共同接口,客户端通过这个接口访问RealSubject和Proxy。

  • RealSubject(真实主题):定义了实际的业务逻辑,Proxy代理了它。

  • Proxy(代理):保存了一个指向RealSubject对象的引用,在必要时会对RealSubject进行额外的操作,以实现一些附加的功能。

使用场景

  • 需要保护真实主题,不希望客户端直接对真实主题进行操作时。
  • 希望给真实主题添加额外的功能时。
  • 需要控制对真实主题的访问时。

实现

QT的MVC(MVD)模式

MVC 的全名是(Model-View-Controller),在QT里叫MVD(Model-View-Delegate),其中:

  • Model(模型):管理应用程序的数据,并提供接口供视图访问和操作数据,如QStandardItemModel。

  • View(视图):显示模型中的数据,并将用户的操作反馈给模型,如QListView。

  • Delegate(代理):控制视图中数据的显示方式,并允许用户对数据进行编辑。如QItemDelegate。

要实现代理,可以参考QT怎么让模型数据在视图中用自定义组件显示?(通过重写委托中的paint函数)

相关推荐
牢姐与蒯2 分钟前
c++数据结构之c++11(二)
开发语言·c++
凉、介3 分钟前
深入理解 ARMv8-A|Application Binary Interface (ABI)
c语言·笔记·学习·嵌入式·arm
lcj25117 分钟前
【stack、queue、deque、priority_queue】C++ 栈 / 队列 / 优先级队列全解析!手撕实现 + 二叉树层序遍历(附源码)
开发语言·c++·笔记
兵哥工控8 分钟前
高精度微秒延时函数实现顺控工控项目实例
c++·mfc·硬件高精度计时器
j_xxx404_9 分钟前
Linux线程池硬核解析:从固定线程池、单例线程池到线程安全、死锁与锁模型|附源码
linux·运维·服务器·c++·安全·ai
guslegend12 分钟前
第1章:从结构到智能,设计模式的世纪旅程
设计模式
zhangakirn14 分钟前
Systems Biology Part 1学习笔记
笔记·学习
牛油果子哥q14 分钟前
【C++静态成员】C++静态成员终极精讲:静态成员变量、静态成员函数、内存布局、对象共享机制、工程实战、深浅坑点与面试满分总结
c++·面试
晚风吹红霞17 分钟前
深入剖析二叉搜索树:从原理到实现,从单key到key/value模型
c++
say_fall18 分钟前
模拟量输入输出技术超详细知识点总结
linux·开发语言·嵌入式硬件·学习·php