設(shè)計(jì)模式的目的是讓代碼易維護(hù)、易擴(kuò)展净刮,不能為了模式而模式剥哑,因此一個(gè)簡單的工具腳本是不需要用到任何模式的。
模板方法模式:定義一個(gè)工作流或算法的基本骨架淹父,而將一些特定步驟的實(shí)現(xiàn)延遲到子類中株婴。
模板方法模式是面向?qū)ο缶幊虒?shí)踐中最容易總結(jié)出來的模式,即使沒有學(xué)習(xí)過設(shè)計(jì)模式的開發(fā)人員暑认,也會(huì)很自然的使用該模式困介,舉個(gè)簡單例子:
class Person(object):
def Chew(self):
"""咀嚼食物"""
raise NotImplementedError()
def Swallow(self):
print '咽下去'
def Eat(self):
# 吃飯分兩步,先嚼蘸际,再咽座哩。
self.Chew()
self.Swallow()
class Man(Person):
def Chew(self):
# 男人通常狼吞虎咽
print '嚼三下'
class Woman(Person):
def Chew(self):
# 女人通常細(xì)嚼慢咽
print '嚼六下'
我們把吃飯的步驟定義好,然后把相同的部分提煉出來粮彤,把不同的部分讓子類去實(shí)現(xiàn)八回。
計(jì)算機(jī)的設(shè)備驅(qū)動(dòng)也采用類似的設(shè)計(jì)模式,系統(tǒng)把通用的部分提煉出來驾诈,讓各硬件廠商根據(jù)驅(qū)動(dòng)模板實(shí)現(xiàn)自己特有的部分。
原文地址:http://www.isware.cn/python-design-pattern/07-template-method/