




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
,填空設(shè)計模式元素包括名稱、問題、方案、效果設(shè)計模式中效果有應(yīng)用效果、使用模式兩方面。觀察者模式包含的角色有主題、觀察者、具體主題、具體觀察者適配器模式包含的角色有目標(biāo)、被話配者、話配器。外觀模式包含的角色有子系統(tǒng)、外觀。工廠方法模式包含的角色有抽象產(chǎn)品、構(gòu)造者、具體產(chǎn)品、具體構(gòu)造者抽象工廠模式包含的角色有抽象產(chǎn)品、抽象工廠、具體產(chǎn)品、具體工廠模板方法模式包含的角色有抽象模板、具體模板代理模式包含的角色有抽象主題、真實主題、代理主題工廠設(shè)計模式分為簡單工廠模式、抽象工廠模式、工廠方法模式設(shè)計模式的兩大主題對象組合、類繼承的討論設(shè)計的基本原則開-閉原則、單一職責(zé)原則、依賴倒轉(zhuǎn)原則、迪米特法則(2。)。工廠方法模式的特點:只能有一個抽象產(chǎn)品類,這個抽象產(chǎn)品類可以派生出多個具體產(chǎn)品類。單選題靜態(tài)工廠的核心角色是什么a)抽象產(chǎn)品角色 具體產(chǎn)品角色 工廠角色設(shè)計模式中抽象工廠模式的定義a)提供一個創(chuàng)建一系列或相互依賴對象的接口,而無須指定它們具體的類當(dāng)將一個類的接口轉(zhuǎn)化成客戶希望的另一個接口,使用哪種設(shè)計模式a)適配器模式適配器模式干什么的a)將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作常見的設(shè)計模式有哪些(分成幾種類型)a)創(chuàng)建型、行為型、結(jié)構(gòu)型工廠方法模式的主要功能是什么a)定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類設(shè)計模式的基本原則a)開-閉原則、單一職責(zé)原則、依賴倒轉(zhuǎn)原則、迪米特法則(LOD)簡答題抽象工廠模式如何用一系列工廠方法模式來實現(xiàn)抽象工廠模式的關(guān)鍵是在一個抽象類或接口中定義若干抽象方法,這些抽象方法分別返回某個類的實例,該抽象類或者接口讓其子類或?qū)崿F(xiàn)該接口的類的重寫,這些抽象方法為用戶提供一系列相關(guān)的對象。外觀模式在系統(tǒng)中的重要性(給出一個解決方案,你如何使用外觀模式來編程)a) 使客戶和子系統(tǒng)中的類無耦合,并且使得子系統(tǒng)使用起來更加方便。b) 外觀只是提供了一個更加簡潔的界面,并不影響用戶直接使用子系統(tǒng)中的類。c) 子系統(tǒng)中任何類對其方法的內(nèi)容進(jìn)行修改,不影響外觀的代碼。觀察者模式中的角色,和每個角色的作用a)主題(Subject):主題是一個接口,該接口規(guī)定了具體主題需要實現(xiàn)的方法,例如:添加、刪除觀察者以及通知觀察者更新數(shù)據(jù)等方法。b) 觀察者(Observer):觀察者是一個接口,該接口規(guī)定了具體觀察者用來更新數(shù)據(jù)的方法。c) 具體主題(ConcreteSubject):具體主題是實現(xiàn)主題接口類的一個實例,該實例包含有可以經(jīng)常發(fā)生變化的數(shù)據(jù)。具體主題使用一個集合,比如ArrayList,存放觀察者的引用,以便數(shù)據(jù)變化時通知具體的觀察者。d) 具體觀察者(ConcreteObserver):具體觀察者是實現(xiàn)觀察者接口的一個實例。具體觀察者包含有可以存放具體主題引用的主題接口變量,以便具體觀察者讓具體主題將自己添加到具體主題的集合中,使自己成為它的觀察者,或讓這個具體的主題將自己從具體的主題中的觀察者列表中刪除,使自己不再是它的觀察者。工廠方法和抽像方法的區(qū)別a) 工廠方法模式只有一個抽象產(chǎn)品類,而抽象工廠模式有多個抽象產(chǎn)品類。b) 工廠方法模式中的具體工廠只能創(chuàng)建一個具體產(chǎn)品類的實例,而抽象工廠模式中的具體工廠可以創(chuàng)建多個相關(guān)的具體產(chǎn)品實例。c) 當(dāng)系統(tǒng)中添加了新的具體產(chǎn)品時,如果采用工廠方法模式進(jìn)行設(shè)計時,需要創(chuàng)建新的具體產(chǎn)品類,然后還需要創(chuàng)建一個具體的構(gòu)造者然后將它們一并添加至原有系統(tǒng)中即可,因此完全符合設(shè)計模式中的“開-閉原則。什么是適配器模式a)適配器模式是將一個類的接口(被適配者)轉(zhuǎn)換成客戶希望的另外一個接口(目標(biāo))的成熟模式,該模式中涉及有目標(biāo)、被適配者和適配器。適配器模式的關(guān)鍵是建立一個適配器,這個適配器實現(xiàn)了目標(biāo)接口并包含有被適配者的引用。使用場景對于一個復(fù)雜的子系統(tǒng),需要為用戶提供一個簡單的交互操作不希望客戶代碼和子系統(tǒng)中的類有耦合,以便提高子系統(tǒng)的獨立性和可移植性當(dāng)整個系統(tǒng)需要構(gòu)建一個層次結(jié)構(gòu)的子系統(tǒng),不希望這些子系統(tǒng)相互直接的交互報社的廣告系統(tǒng)子系統(tǒng)包括如下類:CheckWord:Charge-TypeSeting外觀類ClientServerFacadeCheckword的實例負(fù)責(zé)檢查廣告的內(nèi)容含有的字符個數(shù)Charge類的實例負(fù)責(zé)計算費用TypeSeting的實例負(fù)責(zé)對廣告進(jìn)行排版ClientServerFacade負(fù)責(zé)與子系統(tǒng)交互HTML文件讀取
ReadFile負(fù)責(zé)讀取HTML頁面內(nèi)容AnalyzeInfomation負(fù)責(zé)解析文件SaveFile負(fù)責(zé)保存文件ReadAndWriteFacade負(fù)責(zé)與子系統(tǒng)交互子系統(tǒng)包括如下類二ReadFileSaveFile外觀類應(yīng)用題1、各類客運車站在安排乘客上車時都進(jìn)行安全檢查、驗證車票、選擇車體類型三個步驟。請采用模板方法模式實現(xiàn)上述要求。抽象模板publicabstractclassStation{safetyExamine();//定義安全檢查safetyExamine();publicabstractvoidvalidateTicket();//定義檢查車票validateTicket();publicabstractvoidchoiceCarriageType();//定義選擇車體類型choiceCarriageType();publicabstractvoid/***定義模板方法*說明:模板方法一般不需要子類進(jìn)行覆蓋,因此采用final修飾*/publicfinalvoidridingStep(){//實現(xiàn)具體的乘車步驟,即:實現(xiàn)算法骨架this.safetyExamine();this.validateTicket();this.choiceCarriageType();}}〃具體模板,繼承抽象模板,定義了公共汽車站乘車的具體步驟的實現(xiàn)細(xì)節(jié)publicclassBusStationextendsStation{〃實現(xiàn)符合公共汽車站的安全檢查步驟publicvoidsafetyExamine(){System.out.println("公共汽車站安全檢查。。?!?;}//實現(xiàn)符合公共汽車站的檢票步驟publicvoidvalidateTicket()(System.out.println("公共汽車站檢票。。?!?;}//實現(xiàn)符合公共汽車站的選擇車體類型步驟publicvoidchoiceCarriageType()(System.out.println("公共汽車站選擇列車車體類型。。?!?; }}〃具體模板,繼承抽象模板,定義了火車站乘車的具體步驟的實現(xiàn)細(xì)節(jié)publicclassRailWayStationextendsStation(//實現(xiàn)符合火車站的安全檢查步驟publicvoidsafetyExamine()(System.out.println("火車站安全檢查。。?!?;}//實現(xiàn)符合火車站的檢票步驟publicvoidvalidateTicket()(System.out.println("火車站檢票。。。");}//實現(xiàn)符合火車站的選擇車體類型步驟publicvoidchoiceCarriageType()(System.out.println("火車站選擇列車車體類型。。。");}}publicclassApplication(publicstaticvoidmain(String[]args)(//用于表示具體的車站Stationstation=null;//火車站station=newRailWayStation();//火車站的乘車步驟station.ridingStep();//公共汽車站station=newBusStation();//公共汽車站的乘車步驟station.ridingStep();}}2、在演藝界中,如果某位明星出場演示,一般都是由主辦方與該明星的經(jīng)紀(jì)人進(jìn)行溝通確定演示事宜,例如:出場費、節(jié)目名單等,并且經(jīng)紀(jì)人還要為本次演示進(jìn)行繳稅,明星只是完成具體的演出工作即可,明星并不直接參與與主辦方的溝通、出場費用的洽談以后演出后的繳稅等一系列工作。請采用代理模式完成上面的功能需求?!ǔ橄笾黝}接口,用于表示演藝界人士publicinterfaceIArtist{//定義演藝界人士的基本功能,本例為:表演publicvoidshow();}〃代理主題,實現(xiàn)抽象主題接口publicclassProxyimplementsIArtist{〃代理主題中有對真實主題實例的引用,本例為:明星privateStarlmplstar;/***說明:*重寫抽象主題接口方法,在這個方法中要編寫對真實主題(被代理的對象)的方法調(diào)用,一般真實主題與代理主題實現(xiàn)的是同一接口,因此在真實主題中也有該方法,*因此在代理主題的這個方法中要調(diào)用真實主題的方法,同時還可以在原有功能的基礎(chǔ)上,加入新的功能代碼一般來說,代理主題的功能要多于真實主題**/publicvoidshow(){//在代理主題的這個重寫方法(重寫抽象主題中定義的方法)中,可以調(diào)用代理主題的新增方法,本例為:與主辦方確認(rèn)出場費用this.confirmMoney();//調(diào)用真實主題的方法,本例為:經(jīng)紀(jì)人通知明星演出if(this.star==null){this.star=newStarImpl();}this.star.show();//在代理主題的這個重寫方法(重寫抽象主題中定義的方法)中,可以調(diào)用代理主題的新增方法,本例為:經(jīng)紀(jì)人代理明星繳納演出稅款this.payTax();}//代理主題中新增的功能,本例為:經(jīng)紀(jì)人與主辦方確認(rèn)出場費publicvoidconfirmMoney(){System.out.println("經(jīng)紀(jì)人與主辦方確認(rèn)出場費,明星出場費為300萬元。。。");}//代理主題中新增的功能,本例為:經(jīng)紀(jì)人代理明星繳納演出稅款publicvoidpayTax(){doubletax=300*0.17;System.out.println("經(jīng)紀(jì)人代理明星繳納演出稅款,共繳納:"+tax+"萬元。。?!?;}}〃真實主題,實現(xiàn)抽象主題接口。本例為:明星publicclassStarImplimplementsIArtist{〃重寫抽象主題接口方法,按實際需求進(jìn)行編寫。本例為:明星開演唱會,即:明星所要做的工作publicvoidshow()(System.out.println("明星開演唱會,演唱歌曲。。。?!?;}}(4)publicclassApplication(/***用于演示主辦方(用戶)要邀請明星(真實主題)演出,由于在演藝界明星的一切事宜均由經(jīng)濟(jì)人完成,主辦方不能直接與明星接觸與溝通*所以主辦方需要與該明星的經(jīng)濟(jì)人(代理主題)進(jìn)行接觸與溝通*由于代理主題與真實主題實現(xiàn)了相同的接口,并且代理主題提供給用戶的方法與真實主題提供的方法是相同的,*因此可以將代理主題的實例傳入給用戶的方法使用*/publicvo
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 61169-1-9:2025 EN-FR Radio-frequency connectors – Part 1-9: Mechanical test methods – Safety wire hole pull-out
- 物業(yè)管理小區(qū)能源管理系統(tǒng)協(xié)議
- 有趣的戶外活動記事+活動細(xì)節(jié)描寫5篇范文
- 在線課程教育培訓(xùn)協(xié)議
- 銀行入行考試試題及答案
- 銀行出納考試試題及答案
- 六一剪發(fā)活動方案
- 六一墻紙活動方案
- 六一幼兒花展活動方案
- 六一操場活動方案
- 2025年行政能力測驗考試真題及答案
- 2024年寧夏中衛(wèi)沙坡頭區(qū)招聘社區(qū)專職工作者真題
- 2025年江蘇省南京市中考物理模擬練習(xí)卷(含答案)
- 人教部編版三年級下冊語文各單元【習(xí)作范文】
- 教師普法考試題及答案
- 水冷空調(diào)項目可行性研究報告
- 2025年小產(chǎn)權(quán)房的買賣合同5篇
- 清運垃圾污水合同范本
- 夫妻婚內(nèi)財產(chǎn)財產(chǎn)協(xié)議書
- 合伙地攤火鍋協(xié)議書
- 反詐防騙安全教育主題班會
評論
0/150
提交評論