模式意圖:定義一系列演算法,逐個封裝並使其可互換。演算法變化獨立於使用它的客戶端。
應用場景:Message 實體有 Insert()/Get() 操作,持久化可選 SQL Server 或 XML (兩種可互換演算法),由客戶端決定使用哪種。
public class MessageModel
{
public MessageModel(string msg, DateTime pt)
{
_message = msg; _publishTime = pt;
}
private string _message;
public string Message { get => _message; set => _message = value; }
private DateTime _publishTime;
public DateTime PublishTime { get => _publishTime; set => _publishTime = value; }
}
實體類別為純數據容器,無業務邏輯。策略類別 (SqlMessage/XMLMessage) 封裝具體持久化演算法,Context (Message) 委派執行 — 職責劃分清晰。