一炉峰、什么是模板方法模式
在一個(gè)方法中定義一個(gè)算法的骨架蚓曼,而將一些步驟延續(xù)到子類中。模板方法使得子類在不改變算法結(jié)構(gòu)的情況下沥割,重新定義算法中的某些步驟耗啦。
二、知識(shí)要點(diǎn)
- “模板方法”定義了算法的步驟机杜,把這些的實(shí)現(xiàn)延續(xù)到了子類中帜讲。
- 模板方法模式為我們提供了一種代碼復(fù)用的重要技能。
- 模板方法的抽象類可以定義具體的方法椒拗、抽象方法和鉤子似将。
- 抽象方法由子類實(shí)現(xiàn)。
- 鉤子是一種方法蚀苛,他在抽象類中不做事在验,或者只是做默認(rèn)的事情,子類可以選擇要不要去覆蓋它堵未。
- 為了防止子類改變模板方法中的算法腋舌,可以將模板方法聲明為final。
- 好萊塢原則告訴我們渗蟹,將決策權(quán)放在高級(jí)模塊中,以便決定如何以及何時(shí)調(diào)用底層模塊授艰。
- 你將在真實(shí)代碼中看到模板方法模式的許多變體淮腾,不要期待它們是一眼就可以被你認(rèn)出的。
- 策略模式和模板方法模式都封裝算法篮灼,一個(gè)用組合徘禁,一個(gè)用繼承送朱。
- 工廠方法是模板方法的一種特殊版本干旁。
三争群、類圖
模板方法模式類圖.png
四换薄、項(xiàng)目實(shí)踐
需求:對(duì)關(guān)鍵詞進(jìn)行演繹轻要,其中有多種演繹規(guī)則,說(shuō)的通俗一點(diǎn)就是輸入關(guān)鍵詞和演繹規(guī)則列表輸出演繹后的關(guān)鍵詞冲泥。
分析:不同規(guī)則演繹生成關(guān)鍵詞的步驟是相同的,所以可以采用模板方法設(shè)計(jì)模式來(lái)實(shí)現(xiàn)志秃。
- 設(shè)計(jì)類圖
- 具體實(shí)現(xiàn)代碼