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函数)

相关推荐
随意起个昵称1 小时前
线性dp-LIS题目5(导弹拦截,二分优化)
c++·算法·动态规划
走好每一步1 小时前
5、VTK刚体变换
qt·vtk·三维图像
sensen_kiss1 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.5 软件复用(Software Reuse)
学习·软件工程
法雅特吉他1 小时前
吉他桶型技术解析:GA桶 vs D桶 vs OM桶——入门弹唱选哪个
经验分享·新媒体运营·产品运营·流量运营·用户运营·内容运营
光电笑映1 小时前
进程间通信:深入 System V IPC:共享内存、消息队列与信号量
linux·运维·服务器·c++
xian_wwq1 小时前
【学习笔记】倾斜摄影、高斯泼溅(3DGS)、点云与数字孪生“族谱”全盘点
笔记·学习·3d
伶俜661 小时前
# ✨ 零基础学 ArkUI 动画(专题一):从 animateTo 到 Lottie,一篇吃透全部
学习·华为·harmonyos
伶俜661 小时前
# [特殊字符] 零基础学 ArkUI 数据持久化(专题三):5 种存储方案深度对比
学习·华为·wpf·harmonyos
王_teacher1 小时前
23种设计模式之工厂模式
设计模式·软件工程·简单工厂模式·工厂方法模式·抽象工厂模式
宏笋1 小时前
QT 隐式共享/写时复制详解
qt