zoukankan      html  css  js  c++  java
  • 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))


  • 相关阅读:
    【Python】pip install PIL 报错
    【Selenium】打开浏览器闪退并报错
    【Pycharm】Configuration is still incorrect.
    【Pycharm】初次打开pycharm,“运行”等按钮是灰色,无法运行程序
    如何将APP上传到各大应用市场
    JMeter体系结构
    Workerman启动与停止相关命令
    Workerman简单开发示例实践(二)
    Workerman简单开发示例实践(一)
    Web网站实现Google登录
  • 原文地址:https://www.cnblogs.com/Vancamel/p/11218011.html
Copyright © 2011-2022 走看看