




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1,Builder模式,2,一、所涉及的C+面向?qū)ο缶幊陶Z法,1引用 /一旦引用被定義,它就不能再指向其他對象,3,一、所涉及的C+面向?qū)ο缶幊陶Z法,2引用 /拷貝大型的類對象時間空間開銷太大,4,一、所涉及的C+面向?qū)ο缶幊陶Z法,3引用 /指針需要引用(別名)嗎?,5,一、所涉及的C+面向?qū)ο缶幊陶Z法,3引用,6,二、Builder模式,1問題: ProductA *pa=new ProductA; ProductB *pb=new ProductB; ProductC *pc=new ProductC; 產(chǎn)品ABC之間并無聯(lián)系,但創(chuàng)建過程漫長、步驟多、算法復(fù)雜,7,二、Builder模式,
2、1問題: 創(chuàng)建一個產(chǎn)品(對象)的過程很長,步驟很多,內(nèi)部結(jié)構(gòu)很復(fù)雜。 常常會出現(xiàn)新的產(chǎn)品,需要新的生成器相配合。 有多個產(chǎn)品需要創(chuàng)建,產(chǎn)品之間沒有聯(lián)系;創(chuàng)建算法復(fù)雜,可重用,8,二、Builder模式,2核心思想 復(fù)雜對象的構(gòu)建與其表示分離,9,二、Builder模式,3解決方案-第一步 A 針對產(chǎn)品A、B、C定義三個具體的Builder class BuilderA Part1(); Part2(); Part3(); GetResult(); ;,10,二、Builder模式,3解決方案-第一步 B C class BuilderB Part1(); Part2(); Part3(); G
3、etResult(); ;,class BuilderC Part1(); Part2(); Part3(); GetResult(); ;,11,二、Builder模式,3解決方案-第二步 找出三個具體Builder的共性,定義父類 class BuilderA:public Builder /.省略; class BuilderB:public Builder /.省略; class BuilderC:public Builder /.省略; /UML圖表示,12,二、Builder模式,3解決方案-第三步 定義導(dǎo)向器Director class Director void Constru
4、ct(); ,13,二、Builder模式,3解決方案-第四步 實現(xiàn)導(dǎo)向器 void Director:Construct() builder-Part1(); builder-Part2(); builder-Part3(); ,14,二、Builder模式,3解決方案-第六步 如何使用 main() ProductA *pa; /聲明產(chǎn)品A BuilderA *ba=new BuilderA; /具體builder用來生產(chǎn)A Director *d=new Director(ba); /參數(shù)是具體builder d-Construct(); /創(chuàng)建產(chǎn)品,過程較長 pa=d-GetResul
5、t(); /得到產(chǎn)品的結(jié)果 ,15,二、Builder模式,4Builder創(chuàng)建型模式的本質(zhì) 分離出創(chuàng)建產(chǎn)品的復(fù)雜的算法和步驟 ProductA *pa=new ProductA; 變?yōu)?BuilderA *ba=new BuilderA; Director *d=new Director(ba); d-Construct(); ProductA *pa =d-GetResult();,16,二、Builder模式,5結(jié)構(gòu):用UML中的類圖、交互圖表示 畫法,17,二、Builder模式,6根據(jù)交互圖寫出代碼 ConcreteBuilder *cb=new ConcreteBuilder; D
6、irector *d=new Director(cb);/參數(shù)、構(gòu)造函數(shù) d-Construct(); Product *p=d-GetResult();,18,二、Builder模式,7代碼:書中的代碼用類圖表示,19,二、Builder模式,8一個游戲的例子: BuBing* bb=new Bubing; /創(chuàng)建步兵 Hawk* hk=new Hawk; /創(chuàng)建鷹騎士 FeiJi * fj =new Feiji; /創(chuàng)建直升機 /創(chuàng)建過程長、步驟多、三個兵種關(guān)聯(lián)少,20,二、Builder模式,9與工廠方法的區(qū)別: 1Builder模式的重點是工廠(具體生成器),可重用,不同的具體生成器之間有共性;工廠方法模
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外籍人員用餐管理辦法
- 維修質(zhì)量風(fēng)險管理辦法
- 電廠燃料采購管理辦法
- 后勤職工培訓(xùn)課件
- 肝膿腫護理課件下載
- 肝臟生理功能課件中醫(yī)
- 福州八上期中數(shù)學(xué)試卷
- 肝病用藥護理課件
- 肝病心理護理課件下載
- 高中學(xué)考往年數(shù)學(xué)試卷
- 2025年濟南綜??毓杉瘓F有限公司公開招聘(22名)筆試備考試題參考答案詳解
- 機加工工藝培訓(xùn)
- 2025年內(nèi)蒙古自治區(qū)中考數(shù)學(xué)真題試卷(含答案)
- CT增強掃描造影劑外滲的預(yù)防與處理
- 深靜脈置管的維護與護理
- Unit 2 Home Sweet Home 第6課時(Project Reading Plus) 2025-2026學(xué)年人教版英語八年級下冊
- 孤獨癥業(yè)務(wù)管理制度
- xx公司獎金管理制度
- 勞務(wù)服務(wù)購買協(xié)議書范本
- 2025-2030年中國生物醫(yī)學(xué)材料行業(yè)市場深度分析及發(fā)展前景與投資研究報告
- 2025至2030中國彈簧鋼行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
評論
0/150
提交評論