設(shè)計模式小結(jié)_第1頁
已閱讀1頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘自設(shè)計模式之禪一、創(chuàng)建類模式:包括工廠方法模式、建造者模式、抽象工廠模式、單例模式和原型模式,提供對象的創(chuàng)建和管理職能。1、單例模式是要保持在內(nèi)存中只有一個對象。2、原型模式是要求通過賦值的方式產(chǎn)生一個新的對象。3、工廠方法模式和建造者模式都屬于對象創(chuàng)建類模式,都用來創(chuàng)建類的對象。。區(qū)別:(1)意圖不同工廠方法模式,關(guān)注的是一個產(chǎn)品整體。無須關(guān)注產(chǎn)品的各部分是如何創(chuàng)建出來的;建造者模式中,一個具體產(chǎn)品的產(chǎn)生是依賴各個部件的產(chǎn)生以及裝配

2、順序,它關(guān)注的是“由零件一步一步地組裝出產(chǎn)品對象”。簡單的說,工廠模式是一個對象創(chuàng)建的組線條應(yīng)用,建造者模式則是通過細線條勾勒出一個復(fù)雜對象,關(guān)注的產(chǎn)品組成部分的創(chuàng)建過程。(2)產(chǎn)品的復(fù)雜度不同工廠方法模式創(chuàng)建的產(chǎn)品一般都是單一性質(zhì)產(chǎn)品,而建造者模式創(chuàng)建的則是一個復(fù)合產(chǎn)品,它由各個部分復(fù)合而成,部件不同產(chǎn)品對象不同。它們的粒度大小不同,一般來說,工廠方法模式的對象粒度比較粗,建造者模式的產(chǎn)品對象粒度比較細。4、抽象工廠模式比建造者模式的

3、尺度要大,它關(guān)注產(chǎn)品整體,而建造者模式關(guān)注構(gòu)建過程,因此建造者模式可以很容易地構(gòu)建出一個嶄新的產(chǎn)品,只要導(dǎo)演類能夠提供具體的工藝流程。也正因為如何,兩者的應(yīng)用場景截然不同,如果希望屏蔽對象的創(chuàng)建過程,只提供一個封裝良好的對象,則可以選擇抽象工廠方法模式。而建造者模式可以用在構(gòu)件的裝配方面,如通過裝配不同的組件或者相同組件的不同順序,可以產(chǎn)生一個新的對象,它可以產(chǎn)生一個非常靈活的架構(gòu),方便地擴展和維護系統(tǒng)。二、結(jié)構(gòu)類模式三、行為類模式包括

4、責(zé)任鏈模式、命令模式、解釋器模式、迭代器模式、中介者模式、備忘錄模式、觀察者模式、狀態(tài)模式、策略模式、模板方法模式、訪問者模式。1、策略模式與命令模式兩個模式相似,特別是命令模式退化時,如無接受者,這種情況下,兩個模式類圖完全一樣,代碼實現(xiàn)也比較相似,區(qū)別:a.關(guān)注點不同策略模式關(guān)注的是算法替換的問題,一個新的算法投產(chǎn),舊算法退休,或提供多種算法由調(diào)用者自己選擇使用,算法的自由更替是它實現(xiàn)的要點。換句話說,策略模式關(guān)注的是算法的完整性、

5、封裝性,只有具備了這兩個條件才能保證其可以自由切換。命令模式則關(guān)注的是解耦問題,如何讓請求者和執(zhí)行者解耦是它需要首先解決的,解耦的要求就是把請求內(nèi)容封裝為一個個的命令,由接收者執(zhí)行。由于封裝成了命令,就同時可以對命令進行多種處理,例如撤銷、記錄等b.角色功能不同策略模式中的具體算法是負責(zé)一個完整的算法邏輯,它是不可再拆分的原子業(yè)務(wù)單元,一旦變更就是對算法整體的變更。而命令模式則不同,它關(guān)注命令的實現(xiàn),也就是功能的實現(xiàn)。接收者對命令負責(zé),

溫馨提示

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

評論

0/150

提交評論