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

設計模式 (C#) 實戰:備忘錄模式 — 核心概念與 Memento 類別定義 (上)

     編輯:關於C語言

模式意圖:在不破壞封裝性前提下,捕獲對象內部狀態並在對象外部保存,以便日後恢復至該狀態。

應用場景:Message 實體類有 Insert() 操作,僅在時間符合條件時才能插入成功。需保存/恢復對象狀態:插入失敗 → 恢復狀態 → 更新時間 → 重試。

備忘錄模式 UML 類別圖

MessageModel — 備忘錄角色

封裝需保存的狀態 (Message 內容、PublishTime 發布時間),提供建構函數與屬性存取:


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) 可完全存取;管理者 (Caretaker) 僅持有引用 — 三角色權責劃分清晰。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved