模板設計模式

2021-09-25 01:36:49 字數 1311 閱讀 3311

設計模式:解耦,第三方

開閉原則(ocp):乙個軟體實體如類、模組或函式應該對擴充套件開放,對修改關閉。

定義:在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中,模板設計模式可以使得子類在不改變演算法的前提下,重新定義演算法中的某些步驟。

模板超類的定義:

1. 基類宣告為抽象類(子類具體實現)

2. 模板方法被宣告稱final,以免子類改變這個演算法順序

3. 具體操作延遲到子類中實現(基類中的abstact方法)

4.  具體操作且共用的方法定義在超類中,可以被模板方法或子類直接使用,宣告稱final方法

5. 鉤子方法,預設不做事的方法,子類可以視情況決定要不要覆寫。

例:衝咖啡

1.燒水

2.用水沖泡咖啡

3.把咖啡倒入杯中

4.加糖或者牛奶

例:泡茶

1.燒水

2.浸泡茶葉

3.把茶倒入杯中

4.加檸檬

我們在這兩個類中發現了重複部分,因此我們需要重新整理一下我們的設計。

既然茶和咖啡是如此的相似,因此我們應該將共同的部分抽取出來,放進乙個基類中。

abstract class caffeinebeverage

}final void boilwater()

final void pourincup()

abstract void brew();

abstract void addcondiments();

//鉤子方法

boolean customerwantscondiments()

}class coffee extends caffeinebeverage

void addcondiments()

}class tea extends caffeinebeverage

void addcondiments()

boolean customerwantscondiments()else

}//詢問使用者是否加調料

private string getuserinfo()

}public class test

}

模板設計模式 設計模式 模板方法模式

在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式。首先需要一定抽象的定義,沒有具體的實現,但是在抽象類的行為中,子類去程序這個抽象類,重寫抽象方法,實現不...

模板設計模式 設計模式之模板模式

模板模式,通常又叫做模板方法模式,乙個抽象類公開定義了執行方法的模板,它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方法進行,這種型別的設計模式屬於行為型模式。模板模式主要解決將通用的演算法抽象起來,同樣的 邏輯出現了重複,就可以使用模板模式進行重構。關鍵 在抽象類實現,其他步驟在子類實現...

設計模式 模板設計模式

1 抽象類 abstractclass類中實現了模板方法 template 定義了演算法的骨架,具體子類需要去實現,抽象方法operationr2,3,4 template operationr2,3,4可以是抽象方法,也可以是實現方法 如果是抽象方法,需要到子類實現即可 2 實現類 concret...