這幾天為了設(shè)計插件開發(fā)框架,嘗試用了一下發(fā)散思維來思考問題。中間看過依賴注入,AOP(面向方面編程),以及契約式設(shè)計等。雖然有些工具無法直接使用,但是這些思想還是可以借鑒的,比如依賴注入,契約式設(shè)計。至于AOP,和工具相關(guān)性較大,雖然思想不錯,但是無法直接在C++中使用。
我設(shè)計的插件間的依賴不是通過接口實現(xiàn)的,而是通過插件間的數(shù)據(jù)(信元流)。而信元流的檢測可以使用契約來檢查。
插件開發(fā)框架的總體結(jié)構(gòu)
![]()
微內(nèi)核 :
1、 負責插件的加載,檢測,初始化。
2、 負責服務(wù)的注冊。
3、 負責服務(wù)的調(diào)用。
4、 服務(wù)的管理。
擴展層:
1、 日志的打印。
2、 消息(信元流)的解釋,將二進制格式解釋為文本。便于定位。
3、 消息和日志的追蹤。
分布式處理層:
1、 用于和其他的框架通信。
2、 和其他的框架搭配,形成一個分布式的系統(tǒng)。
自動化測試框架層:
1、 集成 cppunit 。
2、 自動化集成測試框架。
3、 自動化功能測試框架。
和第三方框架集成層:
1 、和 第三方框架 集成層。