單例模式管理部落格全域設定:主題、語系、時區、郵件、評論規則等。資料庫僅作持久化,執行期狀態完全在記憶體物件。
public static event EventHandler<EventArgs> Changed;
private static BlogSettings blogSettingsSingleton;
public static BlogSettings Instance
{
get
{
if (blogSettingsSingleton == null)
blogSettingsSingleton = new BlogSettings();
return blogSettingsSingleton;
}
}
web.config appSettings 或資料庫設定表。Changed 事件通知外部模組設定已變更 (如主題切換即時生效)。Save() 持久化 → 觸發 Changed。BlogProvider.SaveSettings() 序列化至 XML/資料庫。BlogProvider.LoadSettings() 反序列化填充單例。BlogSettings 以單例 + 事件 + Provider 三重保障,實現高內聚、低耦合、可擴充的全域設定管理。