設計模式 模板模式

2022-11-24 22:37:06 字數 894 閱讀 7451

在模板模式(template pattern)中,一個抽象類公開定義了執行它的方法的方式/模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。

即先定義一個抽象類,該抽象類中定義一個模板方法,在該模板方法中,定義演算法的步驟,而每一個步驟中的具體實現,可以在該抽象類中實現,也可以交給子類去實現。

簡單示例

public abstract class game 

//具體實現抽象出來交給子類實現

abstract void initialize();

abstract void startplay();

abstract void endplay();

}

子類實現具體步驟:

//足球

public class football extends game

@override

void startplay()

@override

void endplay()

}//羽毛球

public class badminton extends game

@override

void startplay()

@override

void endplay()

}

模板方法模式主要是通過制定模板,把演算法步驟固定下來,至於誰來實現,模板可以自己提供實現,也可以由子類去實現,還可以通過**機制讓其他類來實現。

通過固定演算法骨架來約束子類的行為,並在特定的擴充套件點來讓子類進行功能擴充套件,從而讓程式既有很好地複用性,又有較好的擴充套件性。

模板方法模式很好地體現了設計原則中的開閉原則和裡式替換原則。

內容文字摘抄自《研磨設計模式》

設計模式 模板模式

1 模板模式 就是定義一個骨架和演算法,裡面的方法,可以讓子類去實現,也可以自己去實現。2 public abstract class abstracttemplate 子類去實現 protected void createcolor 父類本身 private void createengine p...

php設計模式 模板模式

定義一個操作中演算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變演算法的結構即可重定義該演算法的某些特定步驟。通俗點的理解就是 完成一件事情,有固定的數個步驟,但是每個步驟根據物件的不同,而實現細節不同 就可以在父類中定義一個完成該事情的總方法,按照完成事件需要的步驟去呼叫其每個步驟...

設計模式 模板方法模式

模板方法模式,定義一個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個演算法的結構即可重定義該演算法的某些特定的步驟。當我們要完成在某一細節層次一致的一個過程或一系列步驟,但其個別步驟在更詳細的層次上的實現可能不同時,我們通常考慮用模板方法模式來處理。abstractc...