字節(jié)跳動(dòng)飛書(shū)內(nèi)推!
北京、杭州、武漢、廣州、深圳、上海,六大城市等你來(lái)投。
感興趣的朋友可以私我咨詢&內(nèi)推,也可以通過(guò)鏈接直接投遞!
海量HC,極速響應(yīng),快來(lái)和我成為同事吧。
今日頭條、抖音、Tik Tok也可以內(nèi)推~
點(diǎn)擊進(jìn)入我的博客
1 簡(jiǎn)介
模版方法模式是類的行為模式。準(zhǔn)備一個(gè)抽象類,將部分邏輯以具體方法以及具體構(gòu)造子的形式實(shí)現(xiàn),然后聲明一些抽象方法來(lái)迫使子類實(shí)現(xiàn)剩余的邏輯。不同的子類可以以不同的方式實(shí)現(xiàn)這些抽象方法,從而對(duì)剩余的邏輯有不同的實(shí)現(xiàn)。這就是模版方法模式的用意。模版方法模式是基于繼承的代碼復(fù)用的基本技術(shù),模版方法模式的結(jié)構(gòu)和用法也是面向?qū)ο笤O(shè)計(jì)的核心。
2 結(jié)構(gòu)

模版方法
3 例子
HttpServlet
4 模板方法中的方法
模板方法
一個(gè)模版方法是定義在抽象類中的,把基本操作方法組合在一起形成一個(gè)總算法或個(gè)總行為的方法。這個(gè)模版方法一般會(huì)在抽象類中定義,并由子類不加以修改地完全繼承下來(lái)。一個(gè)抽象類可以有任意多個(gè)模版方法,而不限于一個(gè)。每個(gè)模版方法都可以調(diào)用任意多個(gè)具體方法基本方法。
基本方法
基本方法又可以分為三種:抽象方法( Abstract method)、具體方法( Concrete method)和鉤子方法( Hook Method)。
- 抽象方法:一個(gè)抽象方法由抽象類聲明,由具體子類實(shí)現(xiàn)。在Java語(yǔ)言里一個(gè)抽象方法以 abstract關(guān)鍵字標(biāo)示出來(lái)。
- 具體方法:一個(gè)具體方法由抽象類聲明并實(shí)現(xiàn),而子類并不實(shí)現(xiàn)或置換。有些具體方法可以起到工廠方法的作用,這樣的具體方法又叫做工廠方法。在Java語(yǔ)言里面,一個(gè)具體方法沒(méi)有 abstract關(guān)鍵字。
- 鉤子方法:一個(gè)鉤子方法由抽象類聲明并實(shí)現(xiàn),而子類會(huì)加以擴(kuò)展。通常抽象類給出的實(shí)現(xiàn)是一個(gè)空實(shí)現(xiàn),作為方法的默認(rèn)實(shí)現(xiàn)。