模式意圖:定義算法骨架,將特定步驟延遲到子類。模板方法使子類在不改變算法結構下重新定義特定步驟。
應用場景:Message 有 Get() 操作,每次調用前必須用 ValidateUser() 檢查權限。數據來源可為 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; }
}
權限檢查 (骨架固定步驟) + 數據獲取 (延遲步驟) = 完美契合模板方法模式。下篇展示抽象模板與具體實作。