@slf4j
public
abstract
class
drink
/** * 燒開水
*/public
void
firewater()
public
void
brewing()
/** * 新增原料
* 例如:咖啡,牛奶等
*/abstract
void
addmaterials()
;abstract
void
addother()
;}
//沖泡蜂蜜綠茶
@slf4j
public
class
teadrink
extends
drink
@override
void
addother()
}//沖泡咖啡
@slf4j
public
class
coffeedrink
extends
drink
@override
void
addother()
}
@slf4j
public
class
test
}
輸出結果test - 泡咖啡----->
drink - 開始燒水
coffeedrink - 加入咖啡
coffeedrink - 加入牛奶
drink - 開水沖泡
test - 開始泡茶----->
drink - 開始燒水
teadrink - 加入綠茶
teadrink - 加入蜂蜜
drink - 開水沖泡
public
abstract
class
inputstream
implements
closeable
}
設計模式 二十三 模板方法模式
template method pattern 模板方法模式 template method pattern 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中。模板方法模式使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。模板方法模式是一種基於繼承的 復用技術,它是一種類行為型...
二十三種設計模式之模板方法模式
模板方法模式的主要設計思想是定義乙個演算法框架,允許用子類重寫或者其它方式對演算法框架內的某個步驟的具體實現進行修改。本章內容已沖泡咖啡和茶作為例子講解,咖啡和茶葉作為飲料的一種有共通之處,首先燒水 然後沖泡咖啡或茶葉,最後將沖泡後的咖啡或茶葉水倒進杯子中。我們可以將燒水行為和將飲料倒進杯子行為抽象...
二十三種設計模式之模板設計模式
按照我的理解來說,就是乙個流程中,總體的步驟是固定的,但有些步驟是改變的,例如我們做煎蛋這個過程,有哪些步驟是固定的呢,打蛋,下鍋,上碟都是固定的,但有時候我們想吃鹹的,有時候想吃甜的,所以在說放佐料的步驟是改變的。所有的設計模式都是把變化點和固定點分離開來,所謂的固定和變化是相對的,例如我們有乙個...