定義:定義乙個操作中的演算法骨架,而將一些步驟延遲到子類中,模板方法使得子類不用改變演算法骨架而重新定義某些特定步驟,是基於繼承的一種**復用技術。
實現:定義乙個抽象類,提取出子類的公共方法,放到抽象類中,並在抽象類中定義乙個模板方法,在模板方法中規定基本方法的執行順序,將不同的實現細節交給子類去完成
使用場景:在多個子類擁有相同的方法,並且這些方法的邏輯相同,細節不同時可以考慮使用模板方法
優點:容易擴充套件,方便更改子類和增加新的子類,便於維護,每乙個子類實現單一職責,主要邏輯在父類中實現,修改子類不會影響到父類,公共的行為放到父類中, 提高了**復用
缺點:每個不同的實現需要定義乙個子類,導致類的個數增加
栗子:acitivity生命週期函式
public abstract class cook
protected void beforecook()
protected void aftercook()
protected abstract void cooking(); }
public class noodlecook extends cook }
public class ricecook extends cook }
public class test
}
模板設計模式 設計模式 模板方法模式
在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式。首先需要一定抽象的定義,沒有具體的實現,但是在抽象類的行為中,子類去程序這個抽象類,重寫抽象方法,實現不...
模板設計模式 設計模式之模板模式
模板模式,通常又叫做模板方法模式,乙個抽象類公開定義了執行方法的模板,它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方法進行,這種型別的設計模式屬於行為型模式。模板模式主要解決將通用的演算法抽象起來,同樣的 邏輯出現了重複,就可以使用模板模式進行重構。關鍵 在抽象類實現,其他步驟在子類實現...
設計模式 模板設計模式
1 抽象類 abstractclass類中實現了模板方法 template 定義了演算法的骨架,具體子類需要去實現,抽象方法operationr2,3,4 template operationr2,3,4可以是抽象方法,也可以是實現方法 如果是抽象方法,需要到子類實現即可 2 實現類 concret...