首頁 » 設計模式 » 模板(Template method)

模板(Template method)

作者:

分類:

模板(Template method)

概念

模板模式是一種行為型模式,概念是定義一個物件的共用模板(框架),並提供模板內的基本運作功能及抽象方法,讓子模板可以專注在功能開發,整體在維護上也比較方便。

假設檢測系統內有很多種檢測的演算法,可以在這些演算法定義一個共用模板,讓呼叫演算法的系統只需要使用模板提供的方法即可,演算法的實作也只需要注意將結果返回到對應的屬性即可。

範例

//**************
//* author: cian
//* 20231112
//**************

/* Template */
abstract class InspectionTemplate
{   
    protected Parameter para;
    protected bool result = false;
    
    protected virtual SetParameter(Parameter _para)
    {
        para = _para;
    }
    
    protected virtual bool GetResult() { return result; }
    
    protected abstract void DoInspection();
}

class AlgorithmA : InspectionTemplate
{
    protected override void DoInspection()
    {
        if(para != null)
        {
            //Do Something...
            //檢測演算法實作...
            result = ture; //set inspect reult.
        }
    }
}

結語

透過將檢測邏輯的模板定義好,未來如果要新增或修改演算法只要覆寫DoInspection()的方法即可,不會影響及更動使用InspectionTemplate框架的任何系統。

以上為學習過程的問題紀錄
如果文章有誤,歡迎前輩留言請不吝指教。

「cian」的個人頭像

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *