建造者模式中傳遞的資料模型,封裝訊息內容與發布時間:
using System;
using System.Collections.Generic;
using System.Text;
namespace Pattern.Builder
{
///
/// 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; }
}
}
}
提供 SQL 方式的實際資料操作實作:
using System;
using System.Collections.Generic;
using System.Text;
namespace Pattern.Builder
{
///
/// Sql 方式操作 Message
///
public class SqlMessage
{
///
/// 獲取 Message
///
/// MessageModel 清單
public List<MessageModel> Get()
{
List<MessageModel> l = new List<MessageModel>();
l.Add(new MessageModel("SQL方式獲取Message", DateTime.Now));
return l;
}
///
/// 插入 Message
///
/// Message 實體物件
/// 是否成功
public bool Insert(MessageModel mm)
{
// 程式碼略
return true;
}
}
}
這兩個基礎類別為建造者模式提供了資料載體與實際操作實體,建造者負責構建如何調用這些實體的指令,指導者負責協調建造流程,最終由 Operation 透過反射執行實際操作。