版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
,填空設計模式元素包括名稱、問題、方案、效果設計模式中效果有應用效果、使用模式兩方面。觀察者模式包含的角色有主題、觀察者、具體主題、具體觀察者適配器模式包含的角色有目標、被話配者、話配器。外觀模式包含的角色有子系統(tǒng)、外觀。工廠方法模式包含的角色有抽象產品、構造者、具體產品、具體構造者抽象工廠模式包含的角色有抽象產品、抽象工廠、具體產品、具體工廠模板方法模式包含的角色有抽象模板、具體模板代理模式包含的角色有抽象主題、真實主題、代理主題工廠設計模式分為簡單工廠模式、抽象工廠模式、工廠方法模式設計模式的兩大主題對象組合、類繼承的討論設計的基本原則開-閉原則、單一職責原則、依賴倒轉原則、迪米特法則(2。)。工廠方法模式的特點:只能有一個抽象產品類,這個抽象產品類可以派生出多個具體產品類。單選題靜態(tài)工廠的核心角色是什么a)抽象產品角色 具體產品角色 工廠角色設計模式中抽象工廠模式的定義a)提供一個創(chuàng)建一系列或相互依賴對象的接口,而無須指定它們具體的類當將一個類的接口轉化成客戶希望的另一個接口,使用哪種設計模式a)適配器模式適配器模式干什么的a)將一個類的接口轉換成客戶希望的另外一個接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作常見的設計模式有哪些(分成幾種類型)a)創(chuàng)建型、行為型、結構型工廠方法模式的主要功能是什么a)定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類設計模式的基本原則a)開-閉原則、單一職責原則、依賴倒轉原則、迪米特法則(LOD)簡答題抽象工廠模式如何用一系列工廠方法模式來實現抽象工廠模式的關鍵是在一個抽象類或接口中定義若干抽象方法,這些抽象方法分別返回某個類的實例,該抽象類或者接口讓其子類或實現該接口的類的重寫,這些抽象方法為用戶提供一系列相關的對象。外觀模式在系統(tǒng)中的重要性(給出一個解決方案,你如何使用外觀模式來編程)a) 使客戶和子系統(tǒng)中的類無耦合,并且使得子系統(tǒng)使用起來更加方便。b) 外觀只是提供了一個更加簡潔的界面,并不影響用戶直接使用子系統(tǒng)中的類。c) 子系統(tǒng)中任何類對其方法的內容進行修改,不影響外觀的代碼。觀察者模式中的角色,和每個角色的作用a)主題(Subject):主題是一個接口,該接口規(guī)定了具體主題需要實現的方法,例如:添加、刪除觀察者以及通知觀察者更新數據等方法。b) 觀察者(Observer):觀察者是一個接口,該接口規(guī)定了具體觀察者用來更新數據的方法。c) 具體主題(ConcreteSubject):具體主題是實現主題接口類的一個實例,該實例包含有可以經常發(fā)生變化的數據。具體主題使用一個集合,比如ArrayList,存放觀察者的引用,以便數據變化時通知具體的觀察者。d) 具體觀察者(ConcreteObserver):具體觀察者是實現觀察者接口的一個實例。具體觀察者包含有可以存放具體主題引用的主題接口變量,以便具體觀察者讓具體主題將自己添加到具體主題的集合中,使自己成為它的觀察者,或讓這個具體的主題將自己從具體的主題中的觀察者列表中刪除,使自己不再是它的觀察者。工廠方法和抽像方法的區(qū)別a) 工廠方法模式只有一個抽象產品類,而抽象工廠模式有多個抽象產品類。b) 工廠方法模式中的具體工廠只能創(chuàng)建一個具體產品類的實例,而抽象工廠模式中的具體工廠可以創(chuàng)建多個相關的具體產品實例。c) 當系統(tǒng)中添加了新的具體產品時,如果采用工廠方法模式進行設計時,需要創(chuàng)建新的具體產品類,然后還需要創(chuàng)建一個具體的構造者然后將它們一并添加至原有系統(tǒng)中即可,因此完全符合設計模式中的“開-閉原則。什么是適配器模式a)適配器模式是將一個類的接口(被適配者)轉換成客戶希望的另外一個接口(目標)的成熟模式,該模式中涉及有目標、被適配者和適配器。適配器模式的關鍵是建立一個適配器,這個適配器實現了目標接口并包含有被適配者的引用。使用場景對于一個復雜的子系統(tǒng),需要為用戶提供一個簡單的交互操作不希望客戶代碼和子系統(tǒng)中的類有耦合,以便提高子系統(tǒng)的獨立性和可移植性當整個系統(tǒng)需要構建一個層次結構的子系統(tǒng),不希望這些子系統(tǒng)相互直接的交互報社的廣告系統(tǒng)子系統(tǒng)包括如下類:CheckWord:Charge-TypeSeting外觀類ClientServerFacadeCheckword的實例負責檢查廣告的內容含有的字符個數Charge類的實例負責計算費用TypeSeting的實例負責對廣告進行排版ClientServerFacade負責與子系統(tǒng)交互HTML文件讀取
ReadFile負責讀取HTML頁面內容AnalyzeInfomation負責解析文件SaveFile負責保存文件ReadAndWriteFacade負責與子系統(tǒng)交互子系統(tǒng)包括如下類二ReadFileSaveFile外觀類應用題1、各類客運車站在安排乘客上車時都進行安全檢查、驗證車票、選擇車體類型三個步驟。請采用模板方法模式實現上述要求。抽象模板publicabstractclassStation{safetyExamine();//定義安全檢查safetyExamine();publicabstractvoidvalidateTicket();//定義檢查車票validateTicket();publicabstractvoidchoiceCarriageType();//定義選擇車體類型choiceCarriageType();publicabstractvoid/***定義模板方法*說明:模板方法一般不需要子類進行覆蓋,因此采用final修飾*/publicfinalvoidridingStep(){//實現具體的乘車步驟,即:實現算法骨架this.safetyExamine();this.validateTicket();this.choiceCarriageType();}}〃具體模板,繼承抽象模板,定義了公共汽車站乘車的具體步驟的實現細節(jié)publicclassBusStationextendsStation{〃實現符合公共汽車站的安全檢查步驟publicvoidsafetyExamine(){System.out.println("公共汽車站安全檢查。。?!?;}//實現符合公共汽車站的檢票步驟publicvoidvalidateTicket()(System.out.println("公共汽車站檢票。。?!?;}//實現符合公共汽車站的選擇車體類型步驟publicvoidchoiceCarriageType()(System.out.println("公共汽車站選擇列車車體類型。。。”); }}〃具體模板,繼承抽象模板,定義了火車站乘車的具體步驟的實現細節(jié)publicclassRailWayStationextendsStation(//實現符合火車站的安全檢查步驟publicvoidsafetyExamine()(System.out.println("火車站安全檢查。。?!?;}//實現符合火車站的檢票步驟publicvoidvalidateTicket()(System.out.println("火車站檢票。。。");}//實現符合火車站的選擇車體類型步驟publicvoidchoiceCarriageType()(System.out.println("火車站選擇列車車體類型。。。");}}publicclassApplication(publicstaticvoidmain(String[]args)(//用于表示具體的車站Stationstation=null;//火車站station=newRailWayStation();//火車站的乘車步驟station.ridingStep();//公共汽車站station=newBusStation();//公共汽車站的乘車步驟station.ridingStep();}}2、在演藝界中,如果某位明星出場演示,一般都是由主辦方與該明星的經紀人進行溝通確定演示事宜,例如:出場費、節(jié)目名單等,并且經紀人還要為本次演示進行繳稅,明星只是完成具體的演出工作即可,明星并不直接參與與主辦方的溝通、出場費用的洽談以后演出后的繳稅等一系列工作。請采用代理模式完成上面的功能需求?!ǔ橄笾黝}接口,用于表示演藝界人士publicinterfaceIArtist{//定義演藝界人士的基本功能,本例為:表演publicvoidshow();}〃代理主題,實現抽象主題接口publicclassProxyimplementsIArtist{〃代理主題中有對真實主題實例的引用,本例為:明星privateStarlmplstar;/***說明:*重寫抽象主題接口方法,在這個方法中要編寫對真實主題(被代理的對象)的方法調用,一般真實主題與代理主題實現的是同一接口,因此在真實主題中也有該方法,*因此在代理主題的這個方法中要調用真實主題的方法,同時還可以在原有功能的基礎上,加入新的功能代碼一般來說,代理主題的功能要多于真實主題**/publicvoidshow(){//在代理主題的這個重寫方法(重寫抽象主題中定義的方法)中,可以調用代理主題的新增方法,本例為:與主辦方確認出場費用this.confirmMoney();//調用真實主題的方法,本例為:經紀人通知明星演出if(this.star==null){this.star=newStarImpl();}this.star.show();//在代理主題的這個重寫方法(重寫抽象主題中定義的方法)中,可以調用代理主題的新增方法,本例為:經紀人代理明星繳納演出稅款this.payTax();}//代理主題中新增的功能,本例為:經紀人與主辦方確認出場費publicvoidconfirmMoney(){System.out.println("經紀人與主辦方確認出場費,明星出場費為300萬元。。。");}//代理主題中新增的功能,本例為:經紀人代理明星繳納演出稅款publicvoidpayTax(){doubletax=300*0.17;System.out.println("經紀人代理明星繳納演出稅款,共繳納:"+tax+"萬元。。。”);}}〃真實主題,實現抽象主題接口。本例為:明星publicclassStarImplimplementsIArtist{〃重寫抽象主題接口方法,按實際需求進行編寫。本例為:明星開演唱會,即:明星所要做的工作publicvoidshow()(System.out.println("明星開演唱會,演唱歌曲。。。?!?;}}(4)publicclassApplication(/***用于演示主辦方(用戶)要邀請明星(真實主題)演出,由于在演藝界明星的一切事宜均由經濟人完成,主辦方不能直接與明星接觸與溝通*所以主辦方需要與該明星的經濟人(代理主題)進行接觸與溝通*由于代理主題與真實主題實現了相同的接口,并且代理主題提供給用戶的方法與真實主題提供的方法是相同的,*因此可以將代理主題的實例傳入給用戶的方法使用*/publicvo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 22 文言文二則 伯牙鼓琴(說課稿)-2024-2025學年統(tǒng)編版語文六年級上冊
- 第三單元 采摘節(jié)-混合運算 第1課時《乘法與加、減法的混合運算》說課稿-2024-2025學年三年級上冊數學青島版(五四學制)
- 第1課 物聯(lián)網發(fā)展簡述 說課稿 2024-2025學年 贛科版初中信息技術八年級上冊
- 2025年度物業(yè)客戶服務手冊編制與實施專業(yè)合同3篇
- 第四單元(說課稿)2023-2024學年部編版語文四年級下冊
- Starter Unit 1 Hello!Section A Pronunciation說課稿設計 2024-2025學年人教版(2024)七年級英語上冊
- 二零二五年度智慧農業(yè)項目合作協(xié)議范本2篇
- 2025年建筑項目環(huán)保協(xié)議9篇
- Module 2 Unit 2 Im a boy.(說課稿)-2024-2025學年外研版(一起)英語一年級上冊
- 呼叫中心危機應對與處理考核試卷
- 河南省鄭州外國語高中-【高二】【上期中】【把握現在 蓄力高三】家長會【課件】
- 建設項目施工現場春節(jié)放假期間的安全管理方案
- 2023年市場部主管年終工作總結及明年工作計劃
- 國有資產出租出借審批表(學校事業(yè)單位臺賬記錄表)
- 30第七章-農村社會治理課件
- 考研考博-英語-東北石油大學考試押題三合一+答案詳解1
- 出國學生英文成績單模板
- 植物細胞中氨基酸轉運蛋白的一些已知或未知的功能
- 山東省高等學校精品課程
- 三菱張力控制器LE-40MTA-E說明書
- 生活垃圾填埋場污染控制標準
評論
0/150
提交評論