【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子类->操作函数->返回数据类(数据容器)
相关推荐
库克克13 分钟前
【C++】STL 库
c++
Fu_Lin_24 分钟前
Qt嵌入式从零基础到精通(01):Qt嵌入式开发全景图:从桌面Qt到ARM Linux
linux·arm开发·qt·qt5·嵌入式linux
星恒随风29 分钟前
C++ 继承进阶:默认成员函数、多继承、虚继承与组合设计
开发语言·c++·笔记·学习
呜喵王阿尔萨斯1 小时前
C/C++ const -- 多义混乱
c语言·开发语言·c++
海清河晏1111 小时前
Qt实战:从零构建美化登录界面
开发语言·c++·qt
一只小灿灿1 小时前
C++ 各类特殊符号、运算符
开发语言·c++
Fu_Lin_1 小时前
《Qt嵌入式从零基础到精通》前言与阅读指南
开发语言·qt
萧青山2 小时前
2026国标合规:Agent Loop合规设计模式的6种循环架构(GB/Z 185.6+Python)
python·设计模式·agent loop·gb/z 185·国标合规
晚风叙码2 小时前
C++ vector底层模拟实现与迭代器失效深度剖析
c++·算法
2401_8414956411 小时前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥