建立在 Provider 模式之上,為三大擴展 (Extension/Widget/Theme) 提供統一儲存抽象。
SettingBase:抽象基類,含 Load/Save 委派給 ISettingsBehavior。ExtensionSettings / WidgetSettings:具體設定類別。ISettingsBehavior 實作:
ExtensionSettingsBehavior:Extension 設定邏輯。StringDictionaryBehavior:Widget 設定 (序列化 SerializableStringDictionary)。XmlDocumentBehavior:XML 文件直接操作。SettingBase 持有 ISettingsBehavior 參考,具體行為由注入的行為物件決定,符合橋接模式:抽象 (設定類別) 與實作 (儲存行為) 獨立變化。
SettingBase.Load/Save。ISettingsBehavior.Load/Save。BlogService 呼叫底層 BlogProvider (Provider 模式) 完成實際 IO。DataStore 以橋接模式解耦設定模型與儲存行為,配合 Provider 模式實現儲存媒介 (XML/SQL) 熱插拔,是擴展系統資料層的經典設計。