![Petrel Ocean 中模組和插件的區別](https://rvso.com/image/1331463/Petrel%20Ocean%20%E4%B8%AD%E6%A8%A1%E7%B5%84%E5%92%8C%E6%8F%92%E4%BB%B6%E7%9A%84%E5%8D%80%E5%88%A5.png)
剛開始接觸Petrel Ocean,要知道Plug-in和Module有什麼差別。
至少目前來看,它們看起來是一樣的。
誰能給我一些想法嗎?
答案1
Plugin 類別包含為插件提供標識並由插件管理器使用的屬性。插件包含 IEnumerable 模組中的所有模組。 IModule 介面定義了模組生命週期階段的方法。在Petrel啟動過程中,Ocean Core將根據Plugin類別載入插件管理器在設定檔中定義的模組。
答案2
插件是新的,IModule 是舊的。
插件管理器處理插件,因此您應該使用插件管理器。
答案3
如果您打算透過 Ocean Store 部署插件,那麼您將需要從 Plugin 類別派生。當然,您的外掛程式也必須實作 IModule,因為這是控制生命週期的方法的位置。
答案4
Plugin
是 的聚合實體IModule
,即一個 Ocean 插件可能由多個模組組成,每個模組單獨授權。
Plugin
包含附加資訊 - Author
、Contact
、PluginUri
,當插件導致問題(例如未處理的異常)時,這有助於 Petrel 更好地通知使用者。順便說一下,Plugin
它只是一個資訊容器,因為它不包含任何要重寫的方法。
Plugin
允許您聲明Dependencies
, 來定義 Petrel 中 Ocean 插件的載入順序。
最後,一個 Ocean 插件,Plugin
其類別定義並打包為 PIP,包含 XML 格式的圖元檔案以及所有屬性Plugin
,讓 Petrel 可以預先檢查某些條件,而無需實際安裝它。一個例子是AppVersion
屬性,它定義了編譯該插件的主機應用程式(例如 Petrel)的版本。