第26章 模板方法模式.ppt_第1頁
第26章 模板方法模式.ppt_第2頁
第26章 模板方法模式.ppt_第3頁
第26章 模板方法模式.ppt_第4頁
第26章 模板方法模式.ppt_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第26章,模板方法模式、劉蔚weiliu_、牙齒章節(jié)的培訓(xùn)內(nèi)容、模板方法模式模式動(dòng)機(jī)和定義模式結(jié)構(gòu)及分析模式實(shí)例和分析模式效果和應(yīng)用模式擴(kuò)展,操作過程包括步驟!模板方法模式、架構(gòu)動(dòng)機(jī)、模板方法模式、架構(gòu)動(dòng)機(jī)模板方法模式基于繼承的代碼復(fù)用基本技術(shù),模板方法模式的結(jié)構(gòu)和使用也是面向?qū)ο笤O(shè)計(jì)的核心之一。在模板方法模式下,可以將相同的代碼放在父類中,將不同的方法實(shí)現(xiàn)放在不同的子類中。模板方法模式要求準(zhǔn)備抽象類,以特定方法和特定配置函數(shù)格式實(shí)現(xiàn)某些邏輯,然后聲明一些抽象方法,以便子類可以實(shí)現(xiàn)其馀的邏輯。每個(gè)子類可以徐璐以不同的方式實(shí)現(xiàn)這些抽象方法,因此對(duì)于其馀邏輯,可以徐璐進(jìn)行不同的實(shí)現(xiàn)。這就是模板方法

2、模式的意圖。模板方法模式反映了面向?qū)ο蟮脑S多重要思想,是使用頻率高的模型。模板方法模式、架構(gòu)定義模板方法模式:在工作過程中定義算法骨架,并將某些步驟延遲到子類,以便子類可以復(fù)蓋算法特定的步驟,而不更改算法結(jié)構(gòu)。模板方法是一種行為模式。模板方法模式、模式定義模板method pattern : define the skeleton of an algorithm in an operation、Deferring some steps to sub classes . template method lethod一個(gè)設(shè)計(jì)師提供算法的輪廓和骨骼,另一個(gè)設(shè)計(jì)師提供牙齒算法的每個(gè)邏輯程序。實(shí)現(xiàn)這些特

3、定邏輯步驟的方法稱為“主方法”(Primitive Method),聚合這些基本方法的方法稱為“模板方法”(Template Method),模板方法模式的名稱由此而來。模板方法模式、模式分析模板方法:模板方法是在抽象類中組合定義、基本操作方法以形成整個(gè)算法或整體行為的方法?;痉椒ǎ夯痉椒ㄊ菍?shí)現(xiàn)算法階段的方法,是模板方法的一部分。抽象方法(Abstract Method)特定方法(Concrete Method)掛接方法(Hook Method):“掛接”方法和空方法、模板方法模式、模式分析掛接方法,在模板方法模式、模式分析模板方法模式下,子類對(duì)象在運(yùn)行時(shí)復(fù)蓋父類對(duì)象(由于面向?qū)ο蟮亩鄳B(tài))

4、,在子類中定義的方法復(fù)蓋父類中定義的方法,因此,在程序運(yùn)行時(shí),特定子類的基類方法將復(fù)蓋父類中定義的默認(rèn)方法,子類的掛接方法將復(fù)蓋父類的掛接方法。模板方法模式、模板方法模式示例和解決示例1:銀杏業(yè)務(wù)處理流程在銀行處理業(yè)務(wù)時(shí)通常涉及幾個(gè)茄子基本步驟。首先要編號(hào)處理特定業(yè)務(wù),最后給銀杏職員評(píng)分。無論具體業(yè)務(wù)是提款、存款、轉(zhuǎn)賬,其基本過程都是一樣的?,F(xiàn)在使用模板方法模型模擬銀杏業(yè)務(wù)處理流程。、模板方法模式、模板方法模式實(shí)例和解析示例1:銀杏業(yè)務(wù)處理流程、模板方法模式、模板方法模式實(shí)例和解析示例1:銀杏業(yè)務(wù)處理流程參考代碼(chapter 26 template method sample 01)、演示

5、、模板方法模式、模板方法模式實(shí)例和定義了closeDB()的四種茄子方法,對(duì)于不同類型的數(shù)據(jù)庫(如SQL Server和Oracle),過程相同,但連接數(shù)據(jù)庫connDB()方法不同,因此使用模板方法模式設(shè)計(jì)。模板方法模式、模板方法模式實(shí)例和語法分析實(shí)例2:數(shù)據(jù)庫任務(wù)模板、模板方法模式、模式優(yōu)缺點(diǎn)模板方法模式的優(yōu)點(diǎn)模板方法模式定義類中的算法格式,并在子類中實(shí)現(xiàn)詳細(xì)信息。模板方法模式是代碼復(fù)用基本技術(shù)。模板方法模式通過父類調(diào)用子類中的操作,通過子類的擴(kuò)展添加新行為,從而導(dǎo)致遵循“開閉原則”的反向控制結(jié)構(gòu)。模板方法模式、模式優(yōu)點(diǎn)和缺點(diǎn)模板方法模式的缺點(diǎn)每個(gè)實(shí)現(xiàn)都需要定義子類。這增加了類數(shù),系統(tǒng)變大

6、了,設(shè)計(jì)也抽象了,但更符合“單一角色原則”,提高了類的收斂性。模板方法模式,模式應(yīng)用環(huán)境可以在一次實(shí)現(xiàn)一個(gè)算法不變量部分,并在子類中留下變量動(dòng)作的情況下使用模板方法模式。必須從每個(gè)子類中提取公用行為,并將重點(diǎn)放在一個(gè)公用父類上,以避免重復(fù)代碼。一些復(fù)雜的算法拆分,算法中不變的部分設(shè)計(jì)為模板方法和父類的特定方法,可以更改的詳細(xì)信息在子類中實(shí)現(xiàn)??刂谱宇惖臄U(kuò)展。模板方法模式、模式應(yīng)用(1)模板方法模式廣泛應(yīng)用于框架設(shè)計(jì)(例如,Spring、Struts等),從而允許父類控制處理過程的邏輯順序(例如,框架初始化)。模板方法模式、模式應(yīng)用程序節(jié)目(2)Java單元測(cè)試工具JUnit的TestCase類

7、設(shè)計(jì):模板方法模式、模式擴(kuò)展繼承的討論模板方法模式建議正確使用繼承。牙齒模式可以復(fù)蓋某些具有相同功能的相關(guān)類,將可重用的常規(guī)行為代碼移動(dòng)到父類中,還可以用于將專門化行為代碼移動(dòng)到子類中,這還可以使繼承重用存在一些茄子問題,但在某些情況下可以為開發(fā)人員提供方便,模板方法模式是反映繼承優(yōu)點(diǎn)的模型之一。(威廉莎士比亞、模板、模板、模板、模板、模板、模板、模板)、模板方法模式、模式擴(kuò)展好萊塢原則模板方法模式下,子類通過重新定義父類的方法來實(shí)現(xiàn)特定的業(yè)務(wù)邏輯,而無需顯式調(diào)用父類的方法。超類控制對(duì)子類的調(diào)用。牙齒機(jī)制稱為好萊塢原則(Hollywood Principle),好萊塢原則是:“不要給我們打電話

8、,在模板方法模式下,好萊塢原則是子類不需要調(diào)用超類,通過超類調(diào)用子類,將某些步驟的實(shí)現(xiàn)寫入子類,超類控制整個(gè)過程?!薄⒛0宸椒J?、模式擴(kuò)展掛接方法的使用掛接方法的引入允許子類控制父類的行為。最簡(jiǎn)單的掛接方法是空方法。掛接方法也可以定義默認(rèn)實(shí)現(xiàn)。如果子類不復(fù)蓋掛接方法,將執(zhí)行父類的基本實(shí)現(xiàn)代碼。更復(fù)雜的掛接方法可以約束其他方法。牙齒掛接方法通常返回boolean類型,即true或false,以確定是否執(zhí)行基本方法。在、模板方法模式、使用模式擴(kuò)展掛接方法參考代碼(chapter 26 template method hookmethookmethoddemo)、演示、牙齒章節(jié)摘要、模板方法模式中

9、,您可以在工作過程中定義算法骨架,并將某些步驟延遲到子類中,以便在不更改子類的情況下更改子類,模板方法是一種行為模式。模板方法模式包含兩個(gè)茄子角色(抽象類中的一系列基本任務(wù)定義,可以是具體的,也可以是抽象的),并且在抽象類中實(shí)現(xiàn)了定義算法骨骼的模板方法。特定子類是抽象類的子類,它實(shí)現(xiàn)在父類中定義的抽象基本任務(wù)以完成特定于子類的算法步驟,或復(fù)蓋在父類中實(shí)現(xiàn)的特定基本任務(wù)。在模板方法模式下,方法可以分為模板方法和基本方法。其中,基本方法可分為抽象方法、特定方法和掛接方法。掛鉤方法根據(jù)特性分為空方法和實(shí)現(xiàn)算法步驟的基本方法“掛鉤”。在牙齒章節(jié)中,模板方法模式的優(yōu)點(diǎn)是子類可以在定義詳細(xì)處理算法時(shí)執(zhí)行代碼重用,而無需更改算法結(jié)構(gòu)。擴(kuò)展子類可以根據(jù)“開閉原則”添加新動(dòng)作。缺點(diǎn)是必須為每個(gè)實(shí)現(xiàn)定義子類。因此,類數(shù)增加,系統(tǒng)變大,設(shè)計(jì)也應(yīng)用了更抽象的模板方法模式。例如,必

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論