0
應用程序的結構是我有兩個單例。一個用於管理工作,一個用於管理SQLite數據庫。從插件訪問單例
工作管理器加載希望訪問數據庫的插件。無論如何要讓他們訪問Singleton數據庫管理器?如果我將數據庫管理器類包含在插件DLL中 - 是否可行?
我知道另一種方式是在插件接口中有一個字段,並在插件加載時設置該字段,我只是想知道是否有辦法做到這一點,並保持我的插件架構。
謝謝。
編輯
限制:
- 無法使用外部庫。
- 我希望可以從插件訪問的單例類集,並且始終是固定的。
我明白這是「最好」的答案,但可以說我不擔心可擴展性,需要插件「看」一組固定的單例類。或者我不允許使用外部庫 - 解決方案是什麼? – Cheetah
這真的取決於。你也控制插件開發嗎?可以使用靜態方法在允許訪問單例的插件之間共享DLL。主要的一點是,你需要直接注入,或者提供插件的必需實例。如果可能的話,你也可以傳遞一個工廠方法作爲委託,它返回所需的單例接口。我假設你使用一個接口而不是一個類的直接實例。 – Bigtoe