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