定義
定義一個(gè)操作中算法的框架,而將一些步驟延遲到子類中弟劲,模板方法使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟叮姑。模板方法是一種類行為型模式。
角色
- AbstractClass(抽象類)
定義了一系列基本操作砾脑,實(shí)現(xiàn)了一個(gè)模板方法幼驶。 - ConcreteClass(具體子類)
方法分類
- 模板方法
在Java語(yǔ)言中,可以將模板方法定義為final方法韧衣。 - 基本方法
- 抽象方法
- 具體方法
- 鉤子方法
- 第一類鉤子方法可以與一些具體步驟“掛鉤”盅藻,以實(shí)現(xiàn)在不同條件下執(zhí)行模板方法中的不同步驟。一般情況下畅铭,鉤子方法的返回值為true氏淑。
- 第二類鉤子方法就是實(shí)現(xiàn)體為空的具體方法,子類可以根據(jù)需要覆蓋或者繼承這些鉤子方法硕噩。