天天看點

開源項目推薦:基于Qt的QuickEven

基于QT實作的一套低耦合開發模闆,線程管理,類自動注入,控制和界面的徹底分離:

https://gitee.com/fmldd/Quick-Event

問題起源:

1.在Qt編碼過程中對于添加删除功能或界面,類之間的互相引用總伴随着代碼各處修改,期望尋求一種辦法去除這種依賴關系?使用釋出訂閱的設計模式和qt消息循環系統完美做到了這一點,非常低的耦合度,可以讓你删除任意的界面或控制類,無需修改代碼直接編譯[隻是相關功能或界面沒有了程式依然可以run],甚至可以将你的每個類都編譯成動态庫,在運作時動态加載或去除;

2.既然已經做到了松耦合,為什麼還需要自己建立類的執行個體呢?能否向java一樣通過注解,直接建立執行個體化對象,這樣再C++中對于頭檔案的引用也可去除了;

3.QT對象具有線程歸屬,類的自動注入帶來了對象線程管理問題;

4.完美退出,確定自己的程式exited with code 0,無論是主動關閉或被殺死;

為了解決以上問題,基于QT開發QuickEven

碼雲位址:

主要實作了

1.事件釋出和訂閱

2.線程管理

3.類自動注入

4.參考QMetaEvent對于事假的再封裝;

希望能在協同開發中,讓每個開發者隻關注自己的功能點,降低代碼的耦合度,歡迎大家指正;