外掛程式架構1

2021-05-28 06:38:53 字數 1082 閱讀 9825

外掛程式框架在一定程度上也叫微核心框架,它的本質就是希望提供一組最核心的功能,而其它功能都可以在此基礎上通過類似外掛程式的技術來擴充套件實現。

我在準備開發這個外掛程式框架的時候,首先想到的問題就是,這個「核心」到底該保函哪些東西?外掛程式之間存在什麼樣的互動?以及如何進行互動?

我的初步構想如下:

這個外掛程式框架的最最基本的原則就是:簡單,簡單,還是簡單。

所有外掛程式通過乙個系統服務來進行獲取,該系統服務能夠在每個外掛程式中被容易獲取到。

如果a外掛程式需要b外掛程式提供的功能,可以通過系統服務獲取b外掛程式,然後呼叫b外掛程式提供的功能即可。

如果a外掛程式發生了某個事情,可能某些外掛程式關心該事件,但a並不能事先知道哪些外掛程式關心該事件,那麼a可以通過訊息管理外掛程式傳送事件訊息,而b外掛程式則通過註冊訊息響應而達到事件的觸發處理。

基本的機制有了,接下來就是另乙個問題,在系統中,乙個外掛程式用什麼來唯一標記它?

考慮這個問題的時候,我們需要假設乙個前提,以後系統中可能存在多個外掛程式提供同一功能點,而某個時候需要獲取其中乙個,而另些時候需要獲取所有。

基於這樣的假設,我們在外掛程式上會冠以兩個標籤,乙個是名稱,另乙個是功能點名稱,例如pl::inet

注意:名稱不一定是唯一的,但我們**知道哪個該保留,哪個不該保留。

初步分析,我們得到了基本的模組邊界範圍:

核心: 管理外掛程式載入、解除安裝

核心外掛程式:   訊息管理外掛程式

日誌外掛程式(預設有文字日誌輸出器)

接下來的工作會按照如下步驟來進行:

1、 定義外掛程式規範;

2、 定義外掛程式配置描述規範;

3、 完成核心外掛程式之日誌外掛程式

4、 完成核心

5、 完成訊息管理外掛程式

6、 完成大約5個簡單的示例

所有**已經上傳到csdn:

後續如果**有更新,會持續上傳,並在這裡做出說明。

2011.09.20 對**進行了新的版本上傳

新增了乙個丟失的配置檔案

對差價核心**進行了部分注釋

新增了乙個測試外掛程式,用於說明外掛程式訊息的處理過程。

2011.09.21 新增了小工具外掛程式示例工程

該工程建立了乙個最小化到托盤的主外掛程式,小工具外掛程式可以註冊托盤選單。

改進的C 外掛程式架構

不過這種技術介面的制訂是個難題,設計不好很影響以後的功能擴充套件 fking 比較簡單的外掛程式想法,擴充套件的功能是有限的。應該考慮主程式本身也應該是乙個外掛程式的結構。也就是說外掛程式分為宿主外掛程式和擴充套件外掛程式兩類。這兩類也可以在一起。這樣的話才可能有好的擴充套件性。象eclipse的擴...

C 實現外掛程式式架構

1.定義外掛程式介面,將其編譯為dll namespace plugininte ce 2 編寫外掛程式,引用上面的dll,實現上面定義的介面,也編譯為dll 外掛程式a namespace plugininte ce 外掛程式b namespace pluginb 3,在程式中使用外掛程式,需要引...

安裝cacti外掛程式架構擴充套件

安裝cacti外掛程式架構擴充套件 要使用cacti外掛程式必須先擴充套件cacti架構,來支援外掛程式。注 pa 2.0專門為0.8.7b設計的,版本一定要對應 tar zxvf cacti plugin arch 2.0.tar.gz cd cacti plugin arch cp cacti ...