




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2013年設(shè)計(jì)模式期末復(fù)習(xí)設(shè)計(jì)模式期末復(fù)習(xí)題1、以下哪個(gè)模式是利用一個(gè)對象,快速地生成一批對象 :() A.抽象工廠(Abstract Factory)模式 B.組合(Composite)模式 C.原型(Prototype)模式D.橋接(Bridge)模式2、要針對接口編程,不要針對實(shí)現(xiàn)編程是()原則的一種表述。 A.里氏代換B. 依賴倒轉(zhuǎn)C.接口隔離D.迪米特3、“不要和陌生人說話” 是( )原則的通俗表述 A.開閉 B.里氏代換 C.合成復(fù)用 D.迪米特4、關(guān)于繼承表述錯(cuò)誤的是:()A.繼承是一種通過擴(kuò)展一個(gè)已有對象的實(shí)現(xiàn),從而獲得新功能的復(fù)用方法。B.泛化類(超類)可以顯式地捕獲那些公共
2、的屬性和方法。特殊類(子類)則通過附加屬性和方法來進(jìn)行實(shí)現(xiàn)的擴(kuò)展。C.破壞了封裝性,因?yàn)檫@會將父類的實(shí)現(xiàn)細(xì)節(jié)暴露給子類。D.繼承本質(zhì)上是“白盒復(fù)用”,對父類的修改,不會影響到子類5、當(dāng)想使用一個(gè)已經(jīng)存在的類,但其接口不符合需求時(shí),可以采用()設(shè)計(jì)模式將該類的接口轉(zhuǎn)換成我們希望的接口A. 命令(Command) B. 適配器(Adapter) C.裝飾(Decorator)D.橋接(Bridge)6、對于依賴倒轉(zhuǎn)的表述錯(cuò)誤的是() A.依賴于抽象而不依賴于具體,也就是針對接口編程。 B.依賴倒轉(zhuǎn)的接口并非語法意義上的接口,而是一個(gè)類對其他對象進(jìn)行調(diào)用時(shí),所知道的方法集合。 C.從選項(xiàng)B的角度論述
3、,一個(gè)對象可以有多個(gè)接口。 D.實(shí)現(xiàn)了同一接口的對象,可以在運(yùn)行期間,順利地進(jìn)行替換。而且不必知道所示用的對象是那個(gè)實(shí)現(xiàn)類的實(shí)例。 E.此題沒有正確答案。7、Java的異常處理機(jī)制可理解為哪一種行為模式 。A.觀察者(Observer)模式 B.迭代器(Iterator)模式 C.職責(zé)鏈(Chain of Responsibility)模式D.策略(Strategy)模式8、( )不是橋接模式所適用的場景A. 一個(gè)可以跨平臺并支持多種格式的文件編輯器B. 一個(gè)支持多數(shù)據(jù)源的報(bào)表生成工具,可以以不同圖形方式顯示報(bào)表信息C. 一個(gè)可動態(tài)選擇排序算法的數(shù)據(jù)操作工具D. 一個(gè)可以支持多種編程語言的跨平
4、臺開發(fā)工具9、下圖描述了一種設(shè)計(jì)模式,該模式不可以()A. 動態(tài)決定由一組對象中某個(gè)對象處理該請求B. 動態(tài)指定處理一個(gè)請求的對象集合,并高效率地處理一個(gè)請求C. 使多個(gè)對象都有機(jī)會處理請求,避免請求的發(fā)送者和接收者間的耦合D. 將對象連成一條鏈,并沿著該鏈傳遞請求10、在()時(shí)無須使用命令模式A. 實(shí)現(xiàn)撤消操作和恢復(fù)操作 B. 將請求的發(fā)送者和接收者解耦C. 不改變聚合類的前提下定義作用于聚合中元素的新操作D. 在不同的時(shí)刻指定請求,并將請求排隊(duì)11. 中介者模式中通過中介者來將同事類解耦,這是()的具體應(yīng)用。A 迪米特法則B 接口隔離原則 C里氏代換原則 D 合成復(fù)用原則12、下面這句話隱
5、含著()設(shè)計(jì)模式我和妹妹跟媽媽說:“媽媽,我和妹妹在院子里面玩,飯做好了叫我們一聲?!癆. Facade(外觀) B. Chain of Responsibility(職責(zé)鏈) C. Observer(觀察者) D. Iterator(迭代器)13、分析如下代碼public class Test int behaviour;/Getter and Setter.public void handleAll()if(behaviour = 0) /do somethingelse if(behaviour = 1) / do somethingelse if(behaviour = 2) / do
6、 somethingelse if(behaviour = 3) /do something. some more else if.為了提高代碼的擴(kuò)展性和健壯性,可以使用()設(shè)計(jì)模式來進(jìn)行重構(gòu)。A. Visitor(訪問者)B. Facade(外觀)C. Memento(備忘錄)D. State(狀態(tài))14、以下關(guān)于策略模式敘述錯(cuò)誤的是()A. 策略模式是對算法的包裝,是把算法的責(zé)任和算法本身分隔開,委派給不同的對象管理B. 在Context類中,維護(hù)了對各個(gè)ConcreteStrategy的引用實(shí)例,提供了一個(gè)接口供ConcreteStrategy存儲數(shù)據(jù)C. 策略模式讓算法獨(dú)立于使用它的客
7、戶而變化D. 策略模式中,定義一系列算法,并將每一個(gè)算法封裝起來,并讓它們可以相互替換15、場景()不是狀態(tài)模式的實(shí)例。A. 銀行賬戶根據(jù)余額不同擁有不同的存取款操作B. 游戲軟件中根據(jù)虛擬角色級別的不同擁有不同的權(quán)限C. 某軟件在不同的操作系統(tǒng)中呈現(xiàn)不同的外觀D. 會員系統(tǒng)中會員等級不同可以實(shí)現(xiàn)不同的行為、設(shè)計(jì)模式具有的優(yōu)點(diǎn)()。A適應(yīng)需求變化 B.程序易于理解C減少開發(fā)過程中的代碼開發(fā)工作量 D.簡化軟件系統(tǒng)的設(shè)計(jì)2. 下面屬于結(jié)構(gòu)模式的有()。A觀察者模式(Observer) B.單例模式(Singleton)C.策略模式(Strategy) D外觀模式(Faade)3. Adapter
8、(適配器)模式的意圖是( )。A. 希望簡化現(xiàn)有系統(tǒng)的使用方法。你需要定義自己的借口。 B將一個(gè)無法控制的現(xiàn)有對象與一個(gè)特定借口相匹配。 C. 將一組實(shí)現(xiàn)部分從另一組使用它們的對象中分離出來。 D你需要為特定的客戶(或情況)提供特定系列的對象。4. 按照四人組的說法,Bridge(橋接)模式的意圖是( ) A. 將抽象部分與它的實(shí)現(xiàn)部分分離,使它們可以獨(dú)立地變化 B. 將抽象部分與它的實(shí)現(xiàn)部分相分離,但它們不能獨(dú)立地變化. C. 將抽象部分與它的實(shí)現(xiàn)部分相結(jié)合,但它們可以獨(dú)立地變化. D. 將抽象部分與它的實(shí)現(xiàn)部分相結(jié)合,使它們相互依賴5. 以下敘述不對的是( )。A. 學(xué)習(xí)設(shè)計(jì)模式告訴我們要
9、盡可能使用繼承.B. 學(xué)習(xí)設(shè)計(jì)模式通??梢哉业奖葍H采用面向?qū)ο蠓椒ǜ玫慕鉀Q方案.C. 學(xué)習(xí)設(shè)計(jì)模式告訴我們要盡可能使用組合.D. 橋接模式適用于一個(gè)抽象部分擁有不同的實(shí)現(xiàn)部分的情形6. 下面的類圖表示的是哪個(gè)設(shè)計(jì)模式?()。A建造者模式 B抽象工廠模式C 策略模式 D橋接模式7.常用的設(shè)計(jì)模式可分為()。A創(chuàng)建型、結(jié)構(gòu)型和行為型 B對象型、結(jié)構(gòu)型和行為型過程型、創(chuàng)建型和結(jié)構(gòu)型抽象型、接口型和實(shí)現(xiàn)型8. 定義一系列的算法,把它們一個(gè)個(gè)封裝起來,并且使它們可相互替換。這句話是對哪種模式的描述( )。A觀察者模式(Observer) B橋接模式(Bridge)C適配器模式(Adapter) D策略
10、模式(Strategy)9. Decorator(裝飾)模式的意圖是:( )。 A.定義一系列的算法,把它們一個(gè)個(gè)的封裝起來,并且使它們可相互替換。 B.為一個(gè)對象動態(tài)連接附加的職責(zé)。 C.你希望只擁有一個(gè)對象,但不用全局對象來控制對象的實(shí)例化。 D.在對象之間定義一種一對多的依賴關(guān)系,這樣當(dāng)一個(gè)對象的狀態(tài)改變時(shí),所有依賴于它的對象都將得到通知并自動更新。10. 模板方法的作用是( )。A.當(dāng)不能采用生成子類的方法進(jìn)行擴(kuò)充時(shí),動態(tài)地給一個(gè)對象添加一些額外的功能。B為了系統(tǒng)中的一組功能調(diào)用提供一個(gè)一致的接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。C保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問他的全局訪問
11、點(diǎn)。D在方法中定義算法的框架,而將算法中的一些操作步驟延遲到子類中實(shí)現(xiàn)11. 關(guān)于工廠方法,以下敘述不正確的是()。A Factory Method是一個(gè)用于幫助分配創(chuàng)建的責(zé)任的模式。B Factory Method模式和Abstract Factory模式總是配合使用。C Factory Method適用于將對象實(shí)例化的規(guī)則推遲到某個(gè)派生類的情形。D Factory Method是屬于創(chuàng)建型模式。12. Open-Close原則的含義是一個(gè)軟件實(shí)體( )。A.應(yīng)當(dāng)對擴(kuò)展開放,對修改關(guān)閉.B.應(yīng)當(dāng)對修改開放,對擴(kuò)展關(guān)閉C.應(yīng)當(dāng)對繼承開放,對修改關(guān)閉D.以上都不對13. 一個(gè)樹形文件系統(tǒng)體現(xiàn)了(
12、)模式A . 裝飾 B. 組合 C. 橋接 D. 代理14. 以下關(guān)于迭代器模式的敘述錯(cuò)誤的是()A. 迭代器模式提供一種方法來訪問聚合對象,而無須暴露這個(gè)對象的內(nèi)部表示B. 迭代器模式支持以不同的方式遍歷一個(gè)聚合對象C. 迭代器模式定義了一個(gè)訪問聚合元素的接口,并且可以跟蹤當(dāng)前遍歷的元素,了解哪些元素已經(jīng)遍歷過,而哪些沒有D. 在抽象聚合類中定義了訪問和遍歷元素的方法并在具體聚合類中實(shí)現(xiàn)這些方法。15. 在()時(shí)可以使用單例模式A. 隔離菜單項(xiàng)對象的創(chuàng)建和使用 B. 防止一個(gè)資源管理器窗口被實(shí)例化多次C. 使用一個(gè)已有的查找算法而不想修改既有代碼 D. 不能創(chuàng)建子類,需要擴(kuò)展一個(gè)數(shù)據(jù)過濾類二
13、、填空題:(本題共10小題,15個(gè)填空,每空2分,共30分)1. 適配器模式,分為類的適配器和對象的適配器兩種實(shí)現(xiàn)。其中類的適配器采用的是_關(guān)系,而對象適配器采用的是組合聚類關(guān)系。2. 在存在繼承關(guān)系的情況下,方法向超類方向集中,而數(shù)據(jù)向_方向集中。3. 策略模式的意圖是定義一系列的算法,把它們一個(gè)個(gè)_起來, 并且使它們可相互替換。4. 面向?qū)ο蟮陌藯l基本原則包括:開閉原則,里式代換原則,合成復(fù)用原則,迪米特法則以及_,_,_。5. MVC架構(gòu)是一個(gè)復(fù)雜的架構(gòu),其實(shí)現(xiàn)也顯得非常復(fù)雜。但是可以綜合多種模式,使得每個(gè)中間過程變得簡單。View層可以看作一棵樹,可由_實(shí)現(xiàn) View和Model之間的
14、通信,可由_實(shí)現(xiàn) Controller控制View,可用_實(shí)現(xiàn) Model通常是一個(gè)調(diào)停者,可用_實(shí)現(xiàn)請從外觀、單例、裝飾、模板方法、訪問者、組合、橋接、觀察者、責(zé)任鏈、抽象工廠、原型、建造者、命令8 種模式中選擇5種填入下列1-5的空缺中。6. _模式確保某一個(gè)類僅有一個(gè)實(shí)例,并自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。7. _模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用,為子系統(tǒng)中的一組接口提供一個(gè)一致的界面。8. _模式定義一個(gè)操作中的算法的骨架,而將一些步驟延遲到子類中。9. _模式可以在網(wǎng)站開發(fā)中通過對大圖片的控制提高瀏覽速度。10. _模式允許一個(gè)對象在其內(nèi)部狀態(tài)改變時(shí)改變
15、它的行為,對象看起來似乎修改了它的類。二、填空題:(本題共9小題,15個(gè)填空,每空2分,共30分)請從裝飾、模板方法、外觀、組合、橋接、觀察者、責(zé)任鏈、抽象工廠、原型、建造者、命令11 種模式中選擇5種填入下列1-5的空缺中。1、 _模式可以在不改變一個(gè)對象本身的基礎(chǔ)上給對象增加額外的新行為。2、_ 模式用原型實(shí)例指定創(chuàng)建對象的種類,并且通過拷貝這些原型實(shí)例創(chuàng)建新的對象。3、_模式將對象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。使得用戶對單個(gè)對象和組合對象的使用具有一致性。4、 _模式定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個(gè)對象的狀態(tài)發(fā)生改變時(shí), 所有依賴于它的對象都得到通知并被自動更新。5、_模式可以對發(fā)送者和接收者完全解耦,發(fā)送者與接收者之間沒有直接引用關(guān)系,發(fā)送請求的對象只需要知道如何發(fā)送請求,而不必知道如何完成請求。6、常用的基本設(shè)計(jì)模式可以分為;創(chuàng)建型,_,_。7、面向?qū)ο蟮陌藯l基本原則
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 縣城酒吧轉(zhuǎn)讓合同范本
- 公司參股合同范本
- 制模合同范本
- 單筆運(yùn)費(fèi)結(jié)算合同范本
- 修河床合同范本寫
- gps監(jiān)控合同范本
- 印刷設(shè)備轉(zhuǎn)讓合同范本
- 上虞天然氣公司合同范本
- 供種養(yǎng)殖合同范本
- 倉儲分租合同范本
- 2024年新疆維吾爾自治區(qū)專升本考試大學(xué)政治測試題含解析
- 邊坡噴錨施工工藝
- 2016-2023年婁底職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 海鮮酒樓營銷策劃方案
- 電能計(jì)量裝置配置規(guī)范
- 有償義工招募方案
- 冬春季節(jié)傳染病防控(流感)
- 潛在供應(yīng)商審核報(bào)告模版13-02
- 《臨床疾病概論》課件
- 安全生產(chǎn)費(fèi)用使用臺賬
- 舞臺設(shè)計(jì)課件
評論
0/150
提交評論