開閉原則(ocp):乙個軟體實體如類、模組和函式應該對擴充套件開放、對修改關閉
模板設計模式是抽象類的乙個實際應用場景
咖啡沖泡法:1.沖泡咖啡類1.將水煮沸
2.用沸水沖泡咖啡
3.將咖啡倒進杯子
4.加糖和牛奶
茶沖泡法:
1.將水煮沸
2.用沸水浸泡茶葉
3.把茶倒進杯子
4.加檸檬
class
coffee
}public
void
boilwater()
public
void
brewcoffee()
public
void
pourincup()
public
void
addsugerandmilk()
2.沖泡茶類
class
teapublic
void
boilwater()
public
void
brewtea()
public
void
pourincup()
public
void
addlemon()
}
在上述中,因為茶和咖啡很相似,所以將他們共同的部分抽取出來,放在乙個基類中
1.將水煮沸2.用沸水沖泡飲料
3.把飲料倒進杯子
4.在飲料內加入適當的調料
abstract
class
drink
this
.brewdrink()
;//2.沸水沖泡飲料
this
.pourincup()
;//3.倒進杯子if(
this
.isaddother()
)}public
final
void
boilwater()
public
final
void
pourincup()
public
abstract
void
brewdrink()
;public
abstract
void
addother()
;public
boolean
isaddother()
public
boolean
ishotwater()
}class
coffee
extends
drink
public
void
addother()
public
boolean
isaddother()
}class
teaextends
drink
public
void
addother()
public
boolean
isaddother()
public
boolean
ishotwater()
}class
test}/*
1.將水煮沸
2.用沸水沖泡咖啡
3.倒進杯子
4.加入糖和牛奶
-------------
2.用沸水沖泡茶
3.倒進杯子
4.加入檸檬
*/
模板設計模式 設計模式 模板方法模式
在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式。首先需要一定抽象的定義,沒有具體的實現,但是在抽象類的行為中,子類去程序這個抽象類,重寫抽象方法,實現不...
模板設計模式 設計模式之模板模式
模板模式,通常又叫做模板方法模式,乙個抽象類公開定義了執行方法的模板,它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方法進行,這種型別的設計模式屬於行為型模式。模板模式主要解決將通用的演算法抽象起來,同樣的 邏輯出現了重複,就可以使用模板模式進行重構。關鍵 在抽象類實現,其他步驟在子類實現...
設計模式 模板設計模式
1 抽象類 abstractclass類中實現了模板方法 template 定義了演算法的骨架,具體子類需要去實現,抽象方法operationr2,3,4 template operationr2,3,4可以是抽象方法,也可以是實現方法 如果是抽象方法,需要到子類實現即可 2 實現類 concret...