首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

BlogEngine.NET 架構與原始碼分析系列 (8) DataStore 統一儲存模型

     編輯:關於ASP.NET

DataStore 定位

建立在 Provider 模式之上,為三大擴展 (Extension/Widget/Theme) 提供統一儲存抽象。

類別繼承體系

  • SettingBase:抽象基類,含 Load/Save 委派給 ISettingsBehavior。
  • ExtensionSettings / WidgetSettings:具體設定類別。
  • ISettingsBehavior 實作:
    • ExtensionSettingsBehavior:Extension 設定邏輯。
    • StringDictionaryBehavior:Widget 設定 (序列化 SerializableStringDictionary)。
    • XmlDocumentBehavior:XML 文件直接操作。

橋接模式應用

SettingBase 持有 ISettingsBehavior 參考,具體行為由注入的行為物件決定,符合橋接模式:抽象 (設定類別) 與實作 (儲存行為) 獨立變化。

儲存流程

  1. Extension/Widget 讀寫設定 → 呼叫 SettingBase.Load/Save。
  2. 轉交 ISettingsBehavior.Load/Save。
  3. 行為類別透過 BlogService 呼叫底層 BlogProvider (Provider 模式) 完成實際 IO。

總結

DataStore 以橋接模式解耦設定模型與儲存行為,配合 Provider 模式實現儲存媒介 (XML/SQL) 熱插拔,是擴展系統資料層的經典設計。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved