版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘自設計模式之禪一、創(chuàng)建類模式:包括工廠方法模式、建造者模式、抽象工廠模式、單例模式和原型模式,提供對象的創(chuàng)建和管理職能。1、單例模式是要保持在內存中只有一個對象。2、原型模式是要求通過賦值的方式產生一個新的對象。3、工廠方法模式和建造者模式都屬于對象創(chuàng)建類模式,都用來創(chuàng)建類的對象。。區(qū)別:(1)意圖不同工廠方法模式,關注的是一個產品整體。無須關注產品的各部分是如何創(chuàng)建出來的;建造者模式中,一個具體產品的產生是依賴各個部件的產生以及裝配
2、順序,它關注的是“由零件一步一步地組裝出產品對象”。簡單的說,工廠模式是一個對象創(chuàng)建的組線條應用,建造者模式則是通過細線條勾勒出一個復雜對象,關注的產品組成部分的創(chuàng)建過程。(2)產品的復雜度不同工廠方法模式創(chuàng)建的產品一般都是單一性質產品,而建造者模式創(chuàng)建的則是一個復合產品,它由各個部分復合而成,部件不同產品對象不同。它們的粒度大小不同,一般來說,工廠方法模式的對象粒度比較粗,建造者模式的產品對象粒度比較細。4、抽象工廠模式比建造者模式的
3、尺度要大,它關注產品整體,而建造者模式關注構建過程,因此建造者模式可以很容易地構建出一個嶄新的產品,只要導演類能夠提供具體的工藝流程。也正因為如何,兩者的應用場景截然不同,如果希望屏蔽對象的創(chuàng)建過程,只提供一個封裝良好的對象,則可以選擇抽象工廠方法模式。而建造者模式可以用在構件的裝配方面,如通過裝配不同的組件或者相同組件的不同順序,可以產生一個新的對象,它可以產生一個非常靈活的架構,方便地擴展和維護系統(tǒng)。二、結構類模式三、行為類模式包括
4、責任鏈模式、命令模式、解釋器模式、迭代器模式、中介者模式、備忘錄模式、觀察者模式、狀態(tài)模式、策略模式、模板方法模式、訪問者模式。1、策略模式與命令模式兩個模式相似,特別是命令模式退化時,如無接受者,這種情況下,兩個模式類圖完全一樣,代碼實現(xiàn)也比較相似,區(qū)別:a.關注點不同策略模式關注的是算法替換的問題,一個新的算法投產,舊算法退休,或提供多種算法由調用者自己選擇使用,算法的自由更替是它實現(xiàn)的要點。換句話說,策略模式關注的是算法的完整性、
5、封裝性,只有具備了這兩個條件才能保證其可以自由切換。命令模式則關注的是解耦問題,如何讓請求者和執(zhí)行者解耦是它需要首先解決的,解耦的要求就是把請求內容封裝為一個個的命令,由接收者執(zhí)行。由于封裝成了命令,就同時可以對命令進行多種處理,例如撤銷、記錄等b.角色功能不同策略模式中的具體算法是負責一個完整的算法邏輯,它是不可再拆分的原子業(yè)務單元,一旦變更就是對算法整體的變更。而命令模式則不同,它關注命令的實現(xiàn),也就是功能的實現(xiàn)。接收者對命令負責,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論