MessageModel — 實體類別
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; }
}
AbstractMessageState — 抽象狀態基類
public abstract class AbstractMessageState
{
protected Message _message;
public Message Message { get => _message; set => _message = value; }
public abstract void StateChangeCheck();
public abstract List Get();
public abstract bool Insert(MessageModel mm);
}
設計要點
- 抽象類別持有
Message (Context) 參考,具體狀態可存取 Context 狀態決定切換
- 三個抽象方法定義狀態行為合約:
StateChangeCheck (切換判斷)、Get、Insert
- Context 與具體狀態雙向關聯:Context 持有抽象狀態,狀態持有 Context — 形成協作閉環