首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

設計模式 (C#) 實戰:狀態模式 — 實體類與抽象狀態基類定義 (中)

     編輯:關於C語言

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 — 形成協作閉環
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved