裝飾模式中傳遞的資料模型:
using System;
using System.Collections.Generic;
using System.Text;
namespace Pattern.Decorator
{
///
/// 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; }
}
}
}
定義核心操作介面,Component 角色:
using System;
using System.Collections.Generic;
using System.Text;
namespace Pattern.Decorator
{
///
/// 操作 Message 的抽象構件(Component)
///
public abstract class AbstractMessage
{
///
/// 獲取 Message
///
/// MessageModel 清單
public abstract List<MessageModel> Get();
///
/// 插入 Message
///
/// Message 實體物件
/// 是否成功
public abstract bool Insert(MessageModel mm);
}
}
Get()/Insert(),不包含裝飾相關方法。MessageModel 作為參數/返回值在元件與裝飾器間流動。下一篇將實作具體元件 SqlMessage、XMLMessage,展示核心業務邏輯。