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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM