模板方法模式是行為模式之一,它把具體特定步驟演算法中的某些必要的處理委讓給抽象方法,通過子類繼承對抽象方法的不同實現改變整個演算法的行為。抽象類makecar
package com.liuyao;
/** * @author liuyao
* @date 2018/08/05
*/public
abstract
class
makecar
/** * 鉤子方法
*/public
void
run(
)}
抽象類的任務是搭建邏輯的框架,通常由經驗豐富的人員編寫,因為抽象類的好壞直接決定了程式是否穩定性。
具體實現子類
makebuscar
package com.liuyao;
/** * @author liuyao
* @date 2018/08/05
*/public
class
makebuscar
extends
makecar
@override
public
void
makebody()
@override
public
void
maketail()
@override
public
void
run(
)}
maketruckcar
package com.liuyao;
/** * @author liuyao
* @date 2018/08/05
*/public
class
maketruckcar
extends
makecar
@override
public
void
makebody()
@override
public
void
maketail()
@override
public
void
run(
)}
makesuvcar
package com.liuyao;
/** * @author liuyao
* @date 2018/08/05
*/public
class
makesuvcar
extends
makecar
@override
public
void
makebody()
@override
public
void
maketail()
}
main
package com.liuyao;
public
class
main
}//bus head
//bus body
//bus tail
//run in city
//*************************==
//truck head
//truck body
//truck tail
//run in countryside
//*************************==
//suv head
//suv body
//suv tail
//run
模板方法模式
有這樣乙個場景 乙個演算法或流程,它的步驟以及步驟之間的順序是固定的,但具體的某一步可能有不同的實現。對於這麼乙個場景,可以建立多個類,各個類實現不同的實現,但是這樣的缺點是 易錯 難改,易錯 應為步驟和順序是固定的,而且在每個類中都要寫一遍,程式設計師怎有心情不好的時候,就有可能把其中某一步給寫錯...
模板方法模式
模板方法模式 定義乙個演算法框架,將裡面的操作步驟推遲到子類中去執行,這樣使得子類不用改變框架,只需改變某些操作步驟方法 ifndef test h define test h include include using namespace std class test virtual test v...
模板方法模式
模板方法模式 在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法的某些步驟。還可以使用鉤子對可選部分進行判斷。include include using namespace std class caffeinebeverage ...