https://blog.csdn.net/naibozhuan3744/article/details/82383683html
最近博主單獨負責一個比較大的項目,發現之前那種全部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))
後端