定義了演算法的固定步驟(不可改變),但是把這些步驟的具體實現內容交給子類來決定,模板方法模式提供了一種**復用的重要技巧
背景:朋友請客吃飯的固定流程(點菜下單 -> 燒飯 -> 吃飯 -> 買單 -> 娛樂)
請客吃飯:
/**
* 請客吃飯
* * 請客步驟
* 1、下單
* 2、燒飯
* 3、吃飯
* 4、買單
* 5、娛樂
**/public abstract class dinner
protected abstract void cooking();
protected abstract void eating();
/*** 鉤子方法,子類可以重寫,控制是否需要付錢
** @param ispay
*/protected void ispay(boolean ispay)
protected void paymoney()
}protected void play()
protected void dinner()
}
請客吃火鍋:
/**
* 請客吃火鍋
**/public class hotpot extends dinner
@override
protected void eating()
@override
protected void play()
}
請客吃牛排:
/**
* 請客吃牛排
**/public class steak extends dinner
@override
protected void eating()
/*** 重寫鉤子方法,由於是vip會員,所以不用付費
** @param ispay
*/@override
protected void ispay(boolean ispay)
}
測試類:
public class templatetest
@test
public void steaktest()
}
執行結果:
模板 Template 模式
模板 template 模式 模板模式是類的行為模式。1.定義 定義乙個操作中演算法的骨架 或稱為頂級邏輯 將一些步驟 或稱為基本方法 的執行延遲到其子類中.2.模板模式與繼承 模板方法估計恰當地使用繼承。此模式可以用來改寫一些擁有相同功能的相關的類,將可復用的一般性行為 移到基類裡面,而把特殊化的...
Template模板模式
在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式 優缺點優點 1 封裝不變部分,擴充套件可變部分。2 提取公共 便於維護。3 行為由父類控制,子類實現。缺...
模板模式(Template)
1 作用 做一件是的方法很多,但做這件都可以歸納為幾個步驟。這個時候可以使用模板模式,在模板類中,定義做事的步驟,將多種實現做事的細節延遲到子類中去實現。即 定義乙個操作中的演算法的骨架 模板函式 而將一些步驟延遲到子類中 基本函式 模板方法使得子類可以不改變乙個演算法的結構 模板函式 即可重定義該...