1、模板方法介紹
模板方法模式是在乙個方法中定義乙個演算法的骨架,將一些步驟延遲到子類中實現。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟。
模板方法可以進行掛鉤(hook),鉤子(hook)是一種被宣告在抽象類中的方法,但只有空的或者預設的實現。鉤子的存在,可以讓子類有能力對演算法的不同點進行掛鉤。
2、**實現
/**
* 4s店提供售賣模板
*@author administrator
* */
public
abstract
class
salecartemplate
else
}public
void
carloan()
public
void
carinsurance()
/*** 預設通過4s店辦理上牌,如果想自己上牌,就主動提出
*/public
abstract
void
carlicense();
/*** 為吸引消費者,4s店會贈送一些汽車裝飾,消費者自己選擇需要什麼裝飾
*/public
abstract
void
cardecoration();
public
boolean
carlicenseby4s()
}
/**
* 消費者在模板基礎上自定義購買**
*@author administrator
* */
public
class
customerbuy
extends
salecartemplate
public
boolean
carlicenseby4s()
catch (ioexception e)
finally
catch (ioexception e)
}if(userinput.equals("y")) else
return isagreed;
}@override
public
void
cardecoration()
}
public
static
void
main(string args)
結果輸出
開始汽車購買流程--------
在4s店辦理汽車貸款,一般強制
在4s店辦理汽車保險,一般強制
贈送行車記錄儀
贈送貼膜
你想通過4s店辦理上牌嗎,回答y/n
n不通過4s店上牌,自己上牌
設計模式 模板方法模式 概念 實現
學習設計模式不光要學習設計模式的思想,還要去深入理解,為什麼要用這個設計模式。如何深入理解?讀優秀的框架 看別人 了解它們的使用場景。博主老師 感謝他 本文先介紹了模板方法模式的概念及簡單實現。定義 定義乙個操作中的演算法的框架,將一些步驟延遲到子類中,使得子類可以不改變乙個演算法的結構即可重定義該...
設計模式 模板方法模式C 實現
定義乙個操作的演算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。實現方案 將演算法 邏輯框架放在抽象基類中,並定義好實現介面,在子類中實現細節介面。注 策略模式,解決的是相同的問題,只是其方案是將各個介面封裝為類,通過委託 組合方式解決問題 ...
模板設計模式 設計模式 模板方法模式
在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式。首先需要一定抽象的定義,沒有具體的實現,但是在抽象類的行為中,子類去程序這個抽象類,重寫抽象方法,實現不...