随笔 - 741  文章 - 0  评论 - 260  阅读 - 416万

Qt5.9/C++项目开发架构理论

https://blog.csdn.net/naibozhuan3744/article/details/82383683

 

最近博主单独负责一个比较大的项目,发现以前那种所有UI界面和功能逻辑全部写在一起的用法很混乱,不利于团队开发和产品迭代。于是,博主最终开始接触架构了,开始知道UI界面和业务逻辑需要尽可能的分离。

判断一个结构的解耦程度,一个简单的办法是离开了UI界面,业务逻辑是否可以正常调用和运行,如果可以,说明这个架构是比较成功的。同时,对UI界面和业务逻辑功能的每个模块,是否能够被替换,而不影响整个项目的功能,这点也是判断架构解耦性的一个指标。

博主的项目主要是用C/C++语言进行开发,用的界面库是Qt5.9.4,下面是博主对C++架构的初步认知和理解。

1.1架构有很多,但是用在C/C++后端集成管理项目上的架构,常用的是MVC,这也是主流的架构。所以博主重点学习和参考的也是MVC架构。下面是MVC架构的知识点讲解。

https://www.cnblogs.com/9A91/p/4241027.html(MVC初级理解)

https://blog.csdn.net/zch501157081/article/details/51967549(MVC深入理解)

https://blog.csdn.net/u012521552/article/details/51771318(Qt的MVC详解,重点参考)

https://blog.csdn.net/u012521552/article/details/51771318(Qt的MVC(MVD))

 

1.2思考总结

可以参考Qt的MVD模式,将UI界面和业务逻辑层完全分离开来,两者的链接用信号与槽机制。然后每个业务逻辑按照功能划分,封装成一个单独的函数或者类。

UI界面层(view)——>控制器层:当用户操作UI界面时,发射一个控制器层信号;

控制器层(controller)——>模型层:控制层调用模型层功能函数,实现对应业务逻辑功能;

模型层(model)——>控制器层:模型功能层,完成业务逻辑后,再发射一个控制器层信号,声明完成了该业务逻辑功能。

控制器层(controller)——>UI界面层:控制器层接收到该支线程完成了对应的业务逻辑,开启槽函数结束该支线程,然后发射一个控制器层完成业务逻辑信号到UI界面层。UI界面层收到信号,显示对应的结果UI界面。

注意:整个过程控制器有三个关键信号,启动业务逻辑功能信号,退出该业务逻辑线程信号,完成业务逻辑信号。而model层功能函数是用支线程来执行。也就是说,所有的模型功能函数都是用支线程完成,这样可以保证UI界面的流畅度。

 

 

参考内容:

https://www.cnblogs.com/9A91/p/4241027.html(MVC初级理解)

https://blog.csdn.net/zch501157081/article/details/51967549(MVC深入理解)

https://blog.csdn.net/u012521552/article/details/51771318(Qt的MVC详解,重点参考)

https://blog.csdn.net/u012521552/article/details/51771318(Qt的MVC(MVD))

posted on   莫水千流  阅读(972)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示