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

設計模式 (C#) 實戰:模板方法模式 — 抽象模板與驗證邏輯實作 (中)

     編輯:關於C語言

AbstractMessageTemplate — 抽象模板基類


public abstract class AbstractMessageTemplate
{
    protected string _userId;
    public AbstractMessageTemplate(string userId) { _userId = userId; }

    // 驗證用戶權限 - 基類實作,可被覆寫
    public virtual bool ValidateUser()
    {
        return _userId == "admin";
    }

    // 延遲到子類實作的步驟
    public abstract List Get();

    // 模板方法:定義算法骨架
    public List TemplateMethodGet()
    {
        if (ValidateUser())
            return Get();
        else
            return new List { new MessageModel("無權獲取", DateTime.Now) };
    }
}

關鍵設計決策

  • ValidateUser() 為 virtual 非 abstract:提供預設實作 (admin 才有權),子類可選擇性覆寫
  • Get() 為 abstract:強制子類實作具體數據獲取邏輯
  • TemplateMethodGet() 為 非虛擬 (預設 sealed):**禁止子類覆寫算法骨架**,確保流程不被竄改

這正是「模板方法」名稱由來:基類定義模板 (骨架),子類填充具體步驟。

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