設計模式-復習題_第1頁
設計模式-復習題_第2頁
設計模式-復習題_第3頁
設計模式-復習題_第4頁
設計模式-復習題_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上(1)以下是模式的基本要素的是 。ABCDA)名稱 B)意圖C)解決方案 D)參與者和協(xié)作者(2)常用的描述設計模式的格式有 。ABCDA)意圖 B)動機 C)適用性D)結構(3)以下哪些問題通過應用設計模式能夠解決 。AD A)指定對象的接口B)排除軟件BUG C)確定軟件的功能都正確實現(xiàn)D)設計應支持變化(4)面向對象系統(tǒng)中功能復用的最常用技術是 。ABA)類繼承B)對象組合C)使用抽象類D)使用實現(xiàn)類(5)以下屬于行為對象模式的是 。ABCDA)模板(Template Method)模式 B)迭代器(Iterator)模式 C)命令(Command)模式D)觀察

2、者(Observer)模式(6)以下屬于創(chuàng)建型模式的是 。ACA)抽象工廠(Abstract Factory)模式 B)合成(Composite)模式 C)單例(Singleton)模式D)橋接(Bridge)模式(7)在不破壞類封裝性的基礎上,使得類可以同不曾估計到的系統(tǒng)進行交互。主要體現(xiàn)在。 ADA)適配器(Adapte)模式 B)合成(Composite)模式 C)原型(Prototype)模式D)橋接(Bridge)模式(8)單例模式中,兩個基本要點( a b )和單子類自己提供單例 A .構造函數(shù)私有 B.唯一實例 C.靜態(tài)工廠方法 D.以上都不對(9)常用的基本設計模式可分為 。A

3、A)創(chuàng)建型、結構型和行為型B)對象型、結構型和行為型C)過程型、結構型和行為型D)抽象型、接口型和實現(xiàn)型(10)以下關于創(chuàng)建型模式說法正確的是 。AA)創(chuàng)建型模式關注的是對象的創(chuàng)建 B)創(chuàng)建型模式關注的是功能的實現(xiàn)C)創(chuàng)建型模式關注的是組織類和對象的常用方法 D)創(chuàng)建型模式關注的是對象間的協(xié)作 (11)封裝分布于多個類之間的行為的模式是 。 CA)觀察者(Observer)模式 B)迭代器(Iterator)模式 C)訪問者(Visitor)模式D)策略(Strategy)模式 (12)Observer(觀察者)模式適用于 。CA)當一個抽象模型存在兩個方面,其中一個方面依賴于另一方面,將這二

4、者封裝在獨立的對象中以使它們可以各自獨立地改變和復用。 B)當對一個對象的改變需要同時改變其它對象,而不知道具體有多少對象有待改變時。 C)當一個對象必須通知其它對象,而它又不能假定其它對象是誰。也就是說你不希望這些對象是緊密耦合的。D)一個對象結構包含很多類對象,它們有不同的接口,而想對這些對象實施一些依賴于其具體類的操作。(13)Java的異常處理機制可理解為哪一種行為模式 。CA)觀察者(Observer)模式 B)迭代器(Iterator)模式 C)職責鏈(Chain of Responsibility)模式D)策略(Strategy)模式(14)結構型模式中最體現(xiàn)擴展性的幾種模式是

5、。CA)適配器(Adapte)模式 B)合成(Composite)模式 C)裝飾(Decorator)模式D)橋接(Bridge)模式(15)行為類模式使用 在類間分派行為。CA)接口 B)繼承機制C)對象組合 D)委托(16)以下哪個模式是利用一個對象,快速地生成一批對象 。 CA)抽象工廠(Abstract Factory)模式 B)合成(Composite)模式 C)原型(Prototype)模式D)橋接(Bridge)模式1、設計模式一般用來解決什么樣的問題( a)A.同一問題的不同表相 B不同問題的同一表相C.不同問題的不同表相 D.以上都不是2、下列屬于面向對象基本原則的是( c

6、)A.繼承 B.封裝 C.里氏代換 D都不是3、Open-Close原則的含義是一個軟件實體( a )A.應當對擴展開放,對修改關閉. B.應當對修改開放,對擴展關閉C.應當對繼承開放,對修改關閉D.以上都不對4、當我們想創(chuàng)建一個具體的對象而又不希望指定具體的類時,可以使用( a )模式。A.創(chuàng)建型 B.結構型 C行為型 D.以上都可以5、要依賴于抽象,不要依賴于具體。即針對接口編程,不要針對實現(xiàn)編程,是( d )的表述A.開-閉原則 B.接口隔離原則C.里氏代換原則 D.依賴倒轉原則6、依據(jù)設計模式思想,程序開發(fā)中應優(yōu)先使用的是( a )關系實現(xiàn)復用。A, 委派 B.繼承 C創(chuàng)建 D.以上都

7、不對7、設計模式的兩大主題是( d )A.系統(tǒng)的維護與開發(fā) B 對象組合與類的繼承C.系統(tǒng)架構與系統(tǒng)開發(fā) D.系統(tǒng)復用與系統(tǒng)擴展8、單例模式中,兩個基本要點( a b )和單子類自己提供單例A .構造函數(shù)私有 B.唯一實例C.靜態(tài)工廠方法 D.以上都不對9、下列模式中,屬于行為模式的是( b ) A.工廠模式 B觀察者 C適配器 以上都是10、“不要和陌生人說話” 是( d )原則的通俗表述 A.接口隔離 B.里氏代換C.依賴倒轉 D.迪米特:一個對象應對其他對象盡可能少的了解11、構造者的的退化模式是通過合并( c )角色完成退化的。 A.抽象產品 B產品 C創(chuàng)建者 D使用者12、單子(單例

8、,單態(tài))模式類圖結構如下: 下列論述中,關于”0.1”表述的不正確的是( d ) A.1表示,一個單例類中,最多可以有一個實例. B.”0.1”表示單例類中有不多于一個的實例 C.0表示單例類中可以沒有任何實例 D.0表示單例類可以提供其他非自身的實例13、對象適配器模式是( a )原則的典型應用。 A.合成聚合復用原則 B.里式代換原則 C.依賴倒轉原則 D.迪米特法則14、靜態(tài)工廠的核心角色是(a) A.抽象產品 B.具體產品 C.靜態(tài)工廠 D.消費者15、下列關于靜態(tài)工廠與工廠方法表述錯誤的是:( a ) A.兩者都滿足開閉原則:靜態(tài)工廠以if else方式創(chuàng)建對象,增加需求的時候會修改

9、源代碼 B.靜態(tài)工廠對具體產品的創(chuàng)建類別和創(chuàng)建時機的判斷是混和在一起的,這點在工廠方法中 C.不能形成靜態(tài)工廠的繼承結構 D.在工廠方法模式中,對于存在繼承等級結構的產品樹,產品的創(chuàng)建是通過相應等級結構的工廠創(chuàng)建的。16、在觀察者模式中,表述錯誤的是( c ) A.觀察者角色的更新是被動的。 B.被觀察者可以通知觀察者進行更新 C.觀察者可以改變被觀察者的狀態(tài),再由被觀察者通知所有觀察者依據(jù)被觀察者的狀態(tài)進行。 D.以上表述全部錯誤。17.對于違反里式代換原則的兩個類,可以采用的候選解決方案錯誤的是:( d ) A.創(chuàng)建一個新的抽象類C,作為兩個具體類的超類,將A 和B 共同的行為移動到C 中

10、,從而解決A和B 行為不完全一致的問題。 B.將B到A的繼承關系改組成委派關系。 C.區(qū)分是“IS-a”還是”Hasa”。如果是“Is-a”,可以使用繼承關系,如果是”Hasa”應該改成委派關系 D.以上方案錯誤18.對象組合的有點表述不當?shù)氖牵?d ) A. 容器類僅能通過被包含對象的接口來對其進行訪問。 B. “黑盒”復用,封裝性好,因為被包含對象的內部細節(jié)對外是不可見。 C. 通過獲取指向其它的具有相同類型的對象引用, 可以在運行期間動態(tài)地定義(對象的)組合 D.造成極其嚴重的依賴關系。19.關于繼承表述錯誤的是:( d ) A.繼承是一種通過擴展一個已有對象的實現(xiàn),從而獲得新功能的復用

11、方法。 B.泛化類(超類)可以顯式地捕獲那些公共的屬性和方法。特殊類(子類)則通過附加屬性和方法來進行實現(xiàn)的擴展。 C.破壞了封裝性,因為這會將父類的實現(xiàn)細節(jié)暴露給子類。 D.繼承本質上是“白盒復用”,對父類的修改,不會影響到子類。20.對于依賴倒轉的表述錯誤的是( e ) A.依賴于抽象而不依賴于具體,也就是針對接口編程。 B.依賴倒轉的接口并非語法意義上的接口,而是,一個類對其他對象進行調用時,所知道的方法集合。 C.從選項B的角度論述,一個對象可以有多個接口。 D.實現(xiàn)了同一接口的對象,可以在運行期間,順利地進行替換。而且不必知道所示用的對象是那個實現(xiàn)類的實例。 E.此題沒有正確答案。填

12、空1.面向對象的六條基本原則包括:開閉原則,里式代換原則,合成聚合原則以及(依賴倒轉),(迪米特法則),(單一原則),(接口隔離)。2.在存在繼承關系的情況下,方法向(超類)方向集中,而數(shù)據(jù)向(子類)方向集中。3.適配器模式,分為類的適配器和對象的適配器兩種實現(xiàn)。其中類的適配器采用的是(繼承)關系,而對象適配器采用的是(組合聚合)關系。4.設計模式的基本要素有(名字 ),(意圖 ),(問題 ),( 解決方案 ),(參與者與協(xié)作者 ),( 實現(xiàn)),(一般性結構)。5.創(chuàng)立型模式的根本意圖是要把(對象的創(chuàng)建)和(使用分離)的責任進行分離,從而降低系統(tǒng)的(耦合度)。6.工廠模式分為(簡單工廠),(工

13、廠方法),(抽象工廠)三種類型7.門面模式是(迪米特)法則的典型運用8.MVC模型的基本工作原理是基于(觀察者)模式,實現(xiàn)是基于(命令)模式9.設計模式的思想根源是(開閉)基本原則的宏觀運用,本質上是沒有任何模式的,發(fā)現(xiàn)模式的人永遠是大師,而死守模式的人,最對只能是一個工匠.10.MVC中使用的模式兩種(Observer)觀察者模式(Strategy)策略模式(英文單詞)判斷1. 抽象不應該依賴于細節(jié),細節(jié)應當依賴于抽象。錯2. 大多數(shù)設計模式還讓軟件更具有可修改性。對3. Open-Close原則的含義是一個軟件實體應當對擴展開放,對修改關閉。對4. 常用的設計模式可分為過程型、創(chuàng)建型和結構

14、型。錯5. Adapter模式和Fa?ade模式總是在別的什么東西創(chuàng)造的場景中被定義。錯6. Strategy模式使得算法可獨立于使用它的客戶而變化。對7. 從Strategy模式的概念上來說,所有算法都做相同的工作,且擁有相同的實現(xiàn)。錯8. Strategy(策略)模式是一種定義算法家族的方法。對9. Decorator(裝飾)模式的意圖是為一個對象連接附加的職責。錯10. 每個Decorator對象在被裝飾的功能之前或之后執(zhí)行自己的附加功能。對11. 適配器模式屬于創(chuàng)建型模式。 錯12. 在設計模式中,“效果”只是指“原因和結果”。 對13. 設計模式使代碼編制不能真正工程化。 錯14.

15、設計模式的兩大主題是系統(tǒng)復用與系統(tǒng)擴展。 對15. Fa?ade(外觀)模式不僅可以為方法調用創(chuàng)建更簡單的接口,還可以減少客戶必須處理的對象數(shù)量。 對16. 外觀模式,當不能采用生成子類的方法進行擴充時,動態(tài)地給一個對象添加一些額外的功能。 錯17. Fa?ade模式為子系統(tǒng)中的一組接口提供的界面可能不一致。錯18. Fa?ade外觀模式只能為方法調用創(chuàng)建更簡單的接口,不能減少客戶必須處理的對象數(shù)量。19. 對象適配器模式是合成聚合復用原則的典型應用。對20. Adapter模式使原本由于接口不兼容而不能一起工作的那些類可以一起工作。對 名詞解釋1. 設計模式是一套被反復使用、多數(shù)人知曉的、經(jīng)

16、過分類編目的、代碼設計經(jīng)驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。2. 模板模式定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。3. 模式就是解決某一類問題的方法論。把解決某類問題的方法總結歸納到理論高度,那就是模式。4. 內聚度模塊內部各成分彼此結合的緊密程度。5. 什么是設計模式?設計模式的目標是什么?設計模式是一套被反復使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設計經(jīng)驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。6. 設計模式的基本要素有哪些?名稱,意圖,問題,解決方案,參與者和協(xié)作者,效果,實現(xiàn),GOF參考。7

17、. 設計模式中一般都遵循的原則有什么?開-閉原則,根據(jù)場景進行設計原則,優(yōu)先組合原則,包容變化原則。8. 四人團針對“創(chuàng)建優(yōu)秀面向對象設計”建議了哪些策略?針對接口編程,優(yōu)先使用對象組合而不是類繼承,找到并封裝變化點。簡答題1.什么是設計模式?設計模式的目標是什么?設計模式(Design pattern)是一套被反復使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設計經(jīng)驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。2. Strategy模式的意圖是什么嗎?它有哪些效果?意圖是讓你可以使用不同的業(yè)務規(guī)則或算法-取決于它們出場的場景。效果有:Strategy(策略)模式定

18、義了一系列的算法;switch語句或條件語句得到了避免;你必須以相同的方式調用所有的算法(它們必須擁有相同的接口)ConcreteStrategies與Context之間的交互可能需要在Context中加入getState之類的方法。3. Strategy(策略)模式對問題的解決方案是什么?以及如何實現(xiàn)?解決方案是:將算法的選擇和算法的實現(xiàn)相分離。讓客戶可以基于場景做出選擇。實現(xiàn):讓使用算法的類包含一個抽象類,抽象類中有一個抽象方法指定如何調用算法。每個派生類根據(jù)需要實現(xiàn)算法。4. Decorator(裝飾)模式的效果是什么?被添加的功能屬于小的對象。好處是可以在ConcreteCompone

19、nt對象的功能之前或之后動態(tài)添加功能。雖然一個裝飾者可以在被裝飾者之前或之后添加功能,但對象鏈總是以ConcreteComponent對象結束。5 設計模式的基本要素有哪些?名稱,意圖,問題,解決方案,參與者和協(xié)作者,效果,實現(xiàn),GOF參考。6. Strategy(策略)模式是建立在哪些原則的基礎上?主要建立在:對象擁有責任;這些責任的不同的特定實現(xiàn)通過使用多態(tài)來表現(xiàn);需要將幾個不同的實現(xiàn)按照-概念上-相同的算法來管理;一個好的設計經(jīng)驗:將問題領域中發(fā)生的行為彼此分離-也就是說,使它們解耦。這讓改變對某一行為負責的類,而不會對其他行為產生不好的影響。7. 按照四人團的說法,Strategy策略

20、模式的基本思想是什么?定義一系列的算法,把它們一個個封裝起來,并且使它們可相互替換,使算法可獨立于使用它的客戶而變化。8. Decorator(裝飾)模式的解決方案是什么?如何實現(xiàn)?解決方案是允許擴展一個對象的功能,而不必借助于子類型化。實現(xiàn):創(chuàng)建一個抽象類來表示原始的類和要添加到這個類上的新功能。在裝飾者類中,將“對新功能的調用”放在“對緊隨其后對象的調用”之前或之后,以獲得正確的順序。應用題1. 根據(jù)你對Bridge 模式的理解,概要描述使用該模式的應用要求,并給出相應的設計類圖。當存在一個抽象有不同實現(xiàn)時Bridge模式最為有用,它可以使抽象和實現(xiàn)相互獨立地進行變化。2. 舉例說明使用B

21、ridge 模式的場合,給出在該場合下使用Bridge 模式的解決方案,并說明該解決方案的優(yōu)點。打印驅動程序是Bridge模式最典型的例子,也是最適合應用Bridge模式的場合。Bridge模式的真正威力在于它能夠幫助我們看到什么時候應該從問題域中提取實現(xiàn)。也就是說,有時候有一個實體X使用系統(tǒng)S,一個實體Y使用系統(tǒng)T。我們可能認為X總是與S相伴,而Y總是與T相伴,因此就將它們聯(lián)系(耦合)起來。Bridge模式提醒我們,可以抽象出S和T,這樣更好,也就是說,Bridge模式最有用的地方,是在解耦抽象與實現(xiàn)之前考慮Bridge模式是否適用。3. 請結合實際應用說明Decorator模式是怎樣對問題

22、按功能進行分解?Decorator模式并不通過一個控制方法控制新增功能,而是建議以需要的正確順序將所需功能串聯(lián)起來,進行控制。Decorator模式將這樣一個功能鏈的動態(tài)構建與使用功能的客戶分離開來。而且還將功能鏈的構建與鏈組件分離開來。這樣就能靈活使用這些組件,比如,表頭,頁腳和SalesTicket分離開來。4. 在一個國際電子零售系統(tǒng)中,需要考慮為不同的國家的消費者的定單計算稅費問題,請用模式的方法考慮如何解決該問題。通過Strategy模式,可以將這些規(guī)則封裝在一個抽象類中,然后派生出一系列的具體類。通過從一個抽象派生類執(zhí)行算法的所有不同方式,主模塊就無需再操心實際使用的是哪一個,這樣

23、能夠允許發(fā)生新的變化。5. 請結合抽象工廠模式,說明在實際應用中如何生成正確的對象。決定需要哪個工廠對象實際上與確定使用哪一組對象是相同的。例如,在驅動程序問題中,有一組低分辨率動程序和一組高分辨率驅動程序,怎樣才能知道自己需要哪一組呢? 在類似這樣的例子中,很可能通過一個配置文件獲知這一信息。然后可以編寫幾行代碼,根據(jù)配置信息將合適的工廠對象實例化。還可以使用Abstract Factory模式,不同應用程序都使用同一子系統(tǒng)。在這種情況下,工廠對象將傳給子系統(tǒng),告訴子系統(tǒng)將要使用哪些對象,此時,通常主系統(tǒng)知道子系統(tǒng)需要那一組對象,在調用子系統(tǒng)之前,將實例化正確的工廠對象。6 請結合實際應用說明Decorator模式是怎樣對問題按功能進行分解?Decorator模式并不通過一個控制方法控制新增功能,而是建議以需要的正確順序將所需功能串聯(lián)起來,進行控制。Decorator模式將這樣一個功能鏈的動態(tài)構建與使用功能的客戶分離開來。而且還將功能鏈的構建與鏈組件分離開來。這樣就能靈活使用這些組件,比如,表頭,頁腳和SalesTicket分離開來7. 給出Observer的定義以及它的意圖,舉一個例子說明該模式的適用場景,最后畫出它的類圖。定義對象間的一種一對多的依賴關系,當一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新。解決的問題是當某個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論