模板模式,通常又叫做模板方法模式,乙個抽象類公開定義了執行方法的模板,它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方法進行,這種型別的設計模式屬於行為型模式。
模板模式主要解決將通用的演算法抽象起來,同樣的**邏輯出現了重複,就可以使用模板模式進行重構。
關鍵**在抽象類實現,其他步驟在子類實現,一般模板方法都用final關鍵字修飾。
一、模板模式示例**:
以開汽車為例,假設分為4個步驟:點火,開車,剎車,熄火。
/*** 汽車抽象類
*/public abstract class car
// 實現方式相同的,直接在抽象類裡實現
void start()
void close()
// 實現方式不同的,定義為抽象方法,可以由子類實現
abstract void drive();
abstract void stop();
}
/*** 賓士車
*/public class benz extends car
@override
void stop()
}
/**測試**:* 奧迪車
*/public class audi extends car
@override
void stop()
}
/**執行結果:* 測試模板方法模式
*/public class testtemplate
}
發動汽車...使用場景:1、有多個子類共有的方法,且邏輯相同。賓士行使,心所向,馳以恆!
賓士剎車!!!
汽車熄火...
----------------
發動汽車...
奧迪行使,突破科技,啟迪未來!
奧迪剎車!!!
汽車熄火...
2、重要的、複雜的方法,可以考慮把核心演算法作為模板方法,細節功能則由各個子類實現。
設計模式之模板設計模式
模板方法模式,定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重新定義該演算法的某些特定步驟。模板方法模式是通過把不變行為搬到超類,去除子類中的重複 來體現它的優勢。當不變和可變的行為在方法的子類實現中混合在一起的時候,不變的行為就會在子類中重複...
設計模式之模板設計模式
在父類中定義好演算法的骨架,然後在子類中去實現。總的來說就是父類中定義需要實現的總方法,然後在子類中去依次實現它 當然根據物件的不同,所實現的具體細節不同。下面來看乙個例子 在父類中我們定義三個抽象的方法job 在子類中去實現它。子類中執行execute方法 job1 如果當前時間能整除2 則執行j...
模板設計模式 23種設計模式之模板設計模式
1.模板方法模式 template method pattern 又叫模板模式 template pattern 在乙個抽象類公開定義了執行它的模板。它的子類可以俺需要重寫方法實現,但呼叫將以抽象類中定義的方式進行 2.簡單說,模板方法模式定義乙個操作中的演算法的骨架,而降一些步驟延遲到子類中,使得...