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

C# 設計模式:觀察者模式具體觀察者實作 (3/5)

     編輯:關於C語言

具體觀察者:SQL 與 XML 兩種存儲策略

觀察者模式中,每個觀察者實作共同介面 IMessage,但提供不同的具體行為。本例展示兩種不同的訊息持久化方式:

SQL 方式觀察者

using System;
using System.Collections.Generic;
using System.Text;

namespace Pattern.Observer
{
    /// 
    /// SQL 方式操作 Message(ConcreteObserver)
    /// 
    public class SqlMessage : IMessage
    {
        /// 
        /// 插入 Message
        /// 
        /// Message 實體物件
        /// 處理結果描述
        public string Insert(MessageModel mm)
        {
            return "sql方式:" + mm.Message + " " + mm.PublishTime.ToString();
        }
    }
}

XML 方式觀察者

using System;
using System.Collections.Generic;
using System.Text;

namespace Pattern.Observer
{
    /// 
    /// XML 方式操作 Message(ConcreteObserver)
    /// 
    public class XMLMessage : IMessage
    {
        /// 
        /// 插入 Message
        /// 
        /// Message 實體物件
        /// 處理結果描述
        public string Insert(MessageModel mm)
        {
            return "XML方式:" + mm.Message + " " + mm.PublishTime.ToString();
        }
    }
}

設計優勢

  • 開放封閉原則:新增存儲方式只需實作 IMessage,無需修改主題邏輯。
  • 單一職責:每個觀察者專注於特定存儲邏輯。
  • 執行時期綁定:主題運行時動態註冊觀察者,靈活配置行為組合。

兩個觀察者共同實作 IMessage 介面,確保主題能統一對待不同觀察者,完美詮釋「面向介面編程」的精髓。

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