MessageModel 是觀察者模式中傳遞的資料載體,封裝訊息內容與發布時間:
using System;
using System.Collections.Generic;
using System.Text;
namespace Pattern.Observer
{
///
/// Message 實體類別
///
public class MessageModel
{
///
/// 建構函式
///
/// Message 內容
/// Message 發布時間
public MessageModel(string msg, DateTime pt)
{
this._message = msg;
this._publishTime = pt;
}
private string _message;
///
/// Message 內容
///
public string Message
{
get { return _message; }
set { _message = value; }
}
private DateTime _publishTime;
///
/// Message 發布時間
///
public DateTime PublishTime
{
get { return _publishTime; }
set { _publishTime = value; }
}
}
}
定義所有觀察者必須實作的方法,建立主題與觀察者之間的通訊協定:
using System;
using System.Collections.Generic;
using System.Text;
namespace Pattern.Observer
{
///
/// 操作 Message 的介面(Observer)
///
public interface IMessage
{
///
/// 插入 Message
///
/// Message 實體物件
/// 處理結果字串
string Insert(MessageModel mm);
}
}
MessageModel:資料傳輸物件 (DTO),攜帶狀態資訊。IMessage:觀察者角色介面,定義 Insert() 回調方法。SqlMessage、XMLMessage)實作此介面。List<IMessage>,對介面編程而非具體類別。這兩個基礎組件為整個觀察者模式奠定了堅實的類型基礎,確保系統擴展時的類型安全與介面一致性。