【Qt】MVC设计模式

目录

一、搭建MVC框架

二、创建数据库连接单例类SingleDB

三、数据库业务操作类model设计

四、control层,关于model管理类设计

五、view层即为窗口UI类


一、搭建MVC框架

里面的bin、lib、database文件夹以及sqlite3.h与工程后缀为.pro文件的配置与上次发的文章一样,大家可以自行去看,https://mp.csdn.net/mp_blog/creation/editor/145756399

这里我只讲关于MVC框架

  1. 手动创建model文件夹,这个文件夹下放所有表业务操作类
  2. 手动创建view文件夹,这个文件夹下放所有窗口UI相关类
  3. 手动创建control文件夹,这个文件夹下放model管理控制类
  4. 手动创建data文件夹,这个文件夹下放表对应的数据类,一个表(或视图)就有一个数据类

在不包含control的情况下,这几个之间的关系

二、创建数据库连接单例类SingleDB

功能说明:创建单例、连接数据库

  1. 构造函数改私有权限,不让其他对象有new当前这个类的机会
  2. 头文件中编写静态成员、获取单例函数,如下图

3.懒汉式单例

饿汉式单例如果我根本没有使用到这个函数,但是还是会new出一个对象,占用内存空间

三、数据库业务操作类model设计

功能:父类model纯虚函数或虚函数,以及初始化数据库需要的对象

1.先创建一个model父类BaseModel,因为每个表都是有需要增删改查等等业务处理,如果每一个表都写一个处理类,那么类就很多,创建就不方便,所以用父类来统一类型,这个类必须要实现的是数据库连接

2.再创建一个model子类,继承BaseMode。有一个表就可以有一个这样的操作类,例如:UserModel对应用户表操作,VideoMode对应视频表操作.....

3.UserModel子类要去实现父类虚函数或纯虚函数,即继承的多态中对父类成员函数重写,重写函数就为具体的某个业务操作,例如:登录业务、注册业务、分页显示业务....

四、control层,关于model管理类设计

  1. 创建一个管理类,这个类中做成单例设计模式
  2. 编写一个创建不同的model操作类的函数,简单工厂设计模式,其实就是通过传入的参数字符串(可以是表名)判断,应该创建什么model类,其实就是多分支选择

注意:该函数返回值必须是model父类的指针,这里运用继承多态,父类指针指向不同子类空间

五、view层即为窗口UI类

  1. 窗口设计
  2. 信号和槽
  3. 槽函数调用control层管理类->创建model子类->操作函数->返回数据类(数据容器)
相关推荐
mengzhi啊11 分钟前
SerialPortItem对串口再封装一层,省去一些常用的步骤,不用每次都去写类
qt
WL学习笔记12 小时前
C & C++ 内存管理
c++·c++内存管理
用户83344239661413 小时前
从批量操作到任务中心,再到现场工作台:DeviceForge v2.10—v2.12 完整演进
qt
宛 禾14 小时前
Qt 控件入门:QLabel 从拖拽到对象树,一篇讲透
c++·qt·学习
hetao173383714 小时前
联盟场-提高组-R7 & ZYZSC-S-Round 11
c++·算法
程序喵大人15 小时前
【C++入门】编译链接模型 - 07 链接器怎样把符号对上号
开发语言·c++·编译器·编译链接·链接器
博风15 小时前
8、设计模式应用举例:适配器模式:Iterator接口与Enumeration接口
设计模式·适配器模式
局部有解15 小时前
Hot100 - 三数之和
数据结构·c++·算法
longlongzihan15 小时前
C++ 常用数据结构速查:vector、stack、queue、list、树、图、哈希表等声明与核心操作
数据结构·c++·list
别动我齐刘海15 小时前
实时控制学习2
linux·c++·人工智能·学习·算法