標籤:des style blog http color 使用 io ar 2014
模式說明
定義一個操作中的演算法的骨架,而將步驟延遲到子類中。模板方法使得子類可以不改變一個演算法的結構即可重定義演算法的某些特定步驟。
模式結構圖
程式樣本
說明:泡茶與泡咖啡使用同一套流程
代碼:
class Beverage(object): """description of class""" def makeBeverage(self): self.boilWater() self.brew() self.pourInCup() self.addCondiments() def boilWater(self): print ‘boil water‘ def brew(self): print ‘brew‘ def pourInCup(self): print ‘pour into cup‘ def addCondiments(self): print ‘add condiments‘class Coffee(Beverage): def brew(self): print ‘coffee‘ def addCondiments(self): print ‘Adding Sugar and Milk...‘class Tea(Beverage): def brew(self): print "tea" def addCondiments(self): print ‘Adding Lemon...‘if ‘__main__‘==__name__: coffee = Coffee() coffee.makeBeverage() tea = Tea() tea.makeBeverage()
運行結果:
參考來源:
http://www.cnblogs.com/chenssy/p/3679190.html
http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html
http://www.cnblogs.com/zhuxiongfeng/archive/2010/04/09/1708615.html
模板方法模式