国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

第16章 模板方法模式

2022-02-20 12:05 作者:取悅疾風(fēng)  | 我要投稿

內(nèi)容來自尚硅谷Java設(shè)計(jì)模式(圖解+框架源碼剖析)_嗶哩嗶哩_bilibili

寫在前面:本文內(nèi)容大致和原視頻內(nèi)老師的筆記內(nèi)容相同,會(huì)偶爾插入自己的注釋和理解,盡量會(huì)完成作業(yè)

16.1豆?jié){制作問題

編寫制作豆?jié){的程序,說明如下:

1)????? 制作豆?jié){的流程選材--->添加配料--->浸泡--->放到豆?jié){機(jī)打碎通過添加不同的配料,可以制作出不同口味的豆?jié){

2)????? 選材、浸泡和放到豆?jié){機(jī)打碎這幾個(gè)步驟對(duì)于制作每種口味的豆?jié){都是一樣的

3)????? 請使用模板方法模式完成(說明:因?yàn)槟0宸椒J?,比較簡單,很容易就想到這個(gè)方案,因此就直接使用,不再使用傳統(tǒng)的方案來引出模板方法模式)

16.2模板方法模式的基本介紹

基本介紹

1)????? 模板方法模式(Termplate Method Pattern),又叫模板模式(Template Pattern),z在一個(gè)抽象類公開定義了執(zhí)行它的方法的模板。它的子類可以按需要重寫方法實(shí)現(xiàn),但調(diào)用將以抽象類中定義的方式進(jìn)行。

2)????? 簡單說,模板方法模式定義一個(gè)操作中的算法的骨架,而將一些步驟延遲到子類中,使得子類可以不改變一個(gè)算法的結(jié)構(gòu),就可以重定義該算法的某些特定步驟

3)????? 這種類型的設(shè)計(jì)模式屬于行為型模式。

16.3模板方法模式原理類圖

16.3.1模板方法模式原理類圖

對(duì)原理類圖的說明-即(模板方法模式的角色及職責(zé))

1)??????AbstractClass 抽象類,類中實(shí)現(xiàn)了模板方法(template),定義了算法的骨架,具體子類需要去實(shí)現(xiàn)其它的抽象方法operationr2,3,4

2)????? ConcreteClass 實(shí)現(xiàn)抽象方法operationr2,3,4,以完成算法中特點(diǎn)子類的步驟


16.4模板方法模式解決豆?jié){制作問題

1.應(yīng)用實(shí)例要求

編寫制作豆?jié){的程序,說明如下:

制作豆?jié){的流程選材--->添加配料--->浸泡--->放到豆?jié){機(jī)打碎通過添加不同的配料,可以制作出不同口味的豆?jié){

選材、浸泡和放到豆?jié){機(jī)打碎這幾個(gè)步驟對(duì)于制作每種口味的豆?jié){都是一樣的(紅豆、花生豆?jié){。。。)

2.思路分析和圖解(類圖)

3.代碼實(shí)現(xiàn)

16.5模板方法模式的鉤子方法

1)????? 在模板方法模式的父類中,我們可以定義一個(gè)方法,它默認(rèn)不做任何事,子類可以視情況要不要覆蓋它,該方法稱為“鉤子”。

2)????? 還是用上面做豆?jié){的例子來講解,比如,我們還希望制作純豆?jié){,不添加任何的配料,請使用鉤子方法對(duì)前面的模板方法進(jìn)行改造

3)????? 看老師代碼演示:

16.6模板方法模式在Spring框架中的源碼分析

1)????? Spring IOC容器初始化時(shí)運(yùn)用到的模板方法模式

2)????? 代碼分析+角色分析+說明類圖

針對(duì)源碼的類圖(說明了層次關(guān)系)

16.7模板方法模式的注意事項(xiàng)和使用細(xì)節(jié)

1)????? 基本思想是:算法只存在于一個(gè)地方,也就是在父類中,容易修改。需要修改算法時(shí),只要修改父類的模板方法或者已經(jīng)實(shí)現(xiàn)的某些步驟,子類就會(huì)繼承這些修改

2)????? 實(shí)現(xiàn)了最大化代碼復(fù)用。父類的模板方法和已實(shí)現(xiàn)的某些步驟會(huì)被子類繼承而直接使用。

3)????? 既統(tǒng)一了算法,也提供了很大的靈活性。父類的模板方法確保了算法的結(jié)構(gòu)保持不變,同時(shí)由子類提供部分步驟的實(shí)現(xiàn)。

4)????? 該模式的不足之處:每一個(gè)不同的實(shí)現(xiàn)都需要一個(gè)子類實(shí)現(xiàn),導(dǎo)致類的個(gè)數(shù)增加,使得系統(tǒng)更加龐大

5)????? 一般模板方法都加上final關(guān)鍵字,防止子類重寫模板方法.

6)????? 模板方法模式使用場景:當(dāng)要完成在某個(gè)過程,該過程要執(zhí)行一系列步驟,這一系列的步驟基本相同,但其個(gè)別步驟在實(shí)現(xiàn)時(shí)可能不同,通??紤]用模板方法模式來處理


第16章 模板方法模式的評(píng)論 (共 條)

分享到微博請遵守國家法律
衡东县| 资源县| 株洲县| 镇平县| 六枝特区| 呼和浩特市| 兰州市| 安西县| 溆浦县| 秦安县| 日土县| 同德县| 越西县| 揭阳市| 兖州市| 南陵县| 寿光市| 拉萨市| 昌邑市| 普定县| 肇庆市| 杨浦区| 吐鲁番市| 荥经县| 海安县| 阳江市| 阿鲁科尔沁旗| 互助| 镇远县| 青田县| 洛扎县| 靖江市| 夹江县| 定州市| 英山县| 河北区| 多伦县| 修水县| 浦北县| 台北市| 庆安县|