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

下載本文檔

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

文檔簡介

1、三、題目預測填空題:1 .請從外觀、組合、工廠方法、模板方法、觀察者、單件、抽象工廠、命令、迭代器、代理、適配器模式中選擇7種填入下列的空缺中。P6101)工廠方法模式中,父類負責定義創(chuàng)建對象的公共接口,子類決定要創(chuàng)建的具體類是哪一個。2)抽象工廠模式提供一系列相關或相互依賴對象的接口而無需指定它們具體的類。3)單件模式確保某一個類僅有一個實例,并自行實例化并向整個系統(tǒng)提供這個實例。4)組合模式將對象組合成樹形結構以表示部分-整體”的層次結構。使得用戶對單個對象和組合對象的使用具有一致性。5)外觀模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用,為子系統(tǒng)中的一組接口提供一個一致的界面

2、,簡化了一群類的接口。6)觀察者模式定義對象間的一種一對多的依賴關系,當一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新,也就是讓對象能在狀態(tài)改變時被通知。7)模板/HMVC模型式定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。8)迭代器模式在對象的集合之中游走、而不暴露集合的實現(xiàn)。9)代理模式包裝對象,以控制對比對象的訪問。10)適配器模式封裝對象,并提供不同的接口。2 .工廠模式分為(簡單工廠),(工廠方法),(抽象工廠)三種類型。3 .適配器模式,分為類的適配器和對象的適配器兩種實現(xiàn)。其中類的適配器采用的是(繼承)關系,而對象適配器采用的是(組合聚合)關系。4 .

3、設計模式的基本要素有(名之一(M®),(回典,(解決方案),(參與者與協(xié)作者),(實現(xiàn)),(一般性結構)。5 .MVC模型的基本工作原理是基于(觀察者)模式,實現(xiàn)是基于(命令)模式6 .面向對象的六條基本原則包括:開閉原則,里式代換原則,合成聚合原則以及(依賴倒轉),(迪米特法則)(接口隔離)。7 .當我們想用不同的請求對客戶進行參數(shù)化時,可以使用(命令)模式8 .當我們想封裝不同算法并使它們可相互替換時,可以使用(策略)模式。9 .每一個設計模式都集中于一個特定的(設計問題),描述了(相互通信的對象)或者(類)以及(解決方案)和(解決效果)。10 .設計模式中應優(yōu)先使用(對象組合)

4、而不是(類繼承)。11 .面向對象(OO)的基礎包括(抽象)(封裝)(多態(tài))(繼承)。12 .(狀態(tài)模式)允許一個對象基于內(nèi)部狀態(tài)而擁有不同的行為。13 .模式不是代碼,而是(針對設計問題)的通用解決方案。14 .觀察者模式定義了對象之間(一對多)的關系。15 .觀察者和可觀察者之間用(松耦合方式)結合。16 .設計模式的兩大主題是:(對象組合)和(類繼承)的討論。17 .(組合)和(委托)可用于運行時動態(tài)地加上新的行為。18 .工廠方法使用(繼承)把對象的創(chuàng)建委托給子類,子類實現(xiàn)了工廠方法來創(chuàng)建對象。19 .抽象工廠方法使用(對象組合)使對象的創(chuàng)建被實現(xiàn)在工廠接口所暴露出來的方法中。20 .

5、在Java中實現(xiàn)單件模式,需要私有的(構造器)(一個靜態(tài)方法)和(一個靜態(tài)變量)21 .命令模式將(發(fā)出請求)的對象和(執(zhí)行請求)的對象解耦。22 .當需要一個現(xiàn)有的類而其接口不符合需求時,可使用(適配器)模式。23 .適配器模式的兩種模式是(對象適配器)和(類適配器)。24 .(模板方法)定義了算法的步驟,把這些步驟的實現(xiàn)延遲到了子類。25 .(代理模式)為另一個對象提供代表,以便控制客戶對對象的訪問。26 .裝飾著模式為對象加上(行為)而代理模式則是(控制訪問)。27 .開閉原則:(擴展開放)(修改關閉)。28 .代理模式分為哪4種:(虛擬代理)(遠程彳理)(安全代理)(聰明引用)。選擇題

6、1 .設計模式具有的優(yōu)點。(A)A,適應需求變化B.程序易于理解C,減少開發(fā)過程中的代碼開發(fā)工作量D.簡化軟件系統(tǒng)的設計2 .若系統(tǒng)中的某子模塊需要為其它模塊提供訪問不同數(shù)據(jù)庫系統(tǒng)(Oracle、SQLServer>DB2UDB等)的功能,這些數(shù)據(jù)庫系統(tǒng)提供的訪問接口有一定的差異,但訪問過程卻都是相同的,例如,先連接數(shù)據(jù)庫,再打開數(shù)據(jù)庫,最后對數(shù)據(jù)進行查詢,(D)設計模式可抽象出相同的數(shù)據(jù)庫訪問過程;A.外觀B.裝飾C.單件D.模板方法3 .系統(tǒng)中的文本顯示類(TextView)和圖片顯示類(PictureView)都繼承了組件類(Component),分別顯示文本和圖片內(nèi)容,現(xiàn)需要構造

7、帶有滾動條、或者帶有黑色邊框、或者既有滾動條又有黑色邊框的文本顯示控件和圖片顯示控件,但希望最多只增加三個類,(B)設計模式可以實現(xiàn)該目的。A.外觀B.裝飾C.單件D.模板方法4 .下面的類圖表示的是哪個模式?(A)A、抽象工廠模式(AbstractFactory)B、工廠方法模式(FactoryMethod)C、命令模式(Command)D、責任鏈模式(ChainofResponsibility)5 .下面的類圖表示的是哪個設計模式?(B)A、代理模式(Proxy)B、裝飾模式(Decorator)C、橋接模式(Bridge)D、觀察者模式(Observer)6 .下面的類圖表示的是哪個模式

8、?(B)A、代理模式(Proxy)B、外觀模式(Facade)C、適配器模式(Adapter)D、橋接模式(Bridge)7 .下面的類圖表明了哪個模式?(D)A、責任鏈模式(ChainofResponsibility)B、命令模式(Command)C、備忘錄模式(Memento)D、工廠方法模式(FactoryMethod)8 .下面的類圖表示的是哪個設計模式?(D)A、模板方法模式(TemplateMethod)B、命令模式(Command)C、單例模式(Singleton)D、狀態(tài)模式(State)9 .下面的類圖表示的是哪個設計模式?(C)A、模板方法模式(TemplateMethod

9、)B、命令模式(Command)C、單例模式(Singleton)D、狀態(tài)模式(State)10.當我們想創(chuàng)建一個具體的對象而又不希望指定具體的類時,可以使用(A)模式A.創(chuàng)建型B.結構型C行為型D.以上都可以11、設計模式的兩大主題是(d)A.系統(tǒng)的維護與開發(fā)B對象組合與類的繼承C.系統(tǒng)架構與系統(tǒng)開發(fā)D.系統(tǒng)復用與系統(tǒng)擴展12、單例模式中,兩個基本要點(ab)和單子類自己提供單例A.構造函數(shù)私有B.唯一實例C.靜態(tài)工廠方法D.以上都不對13、下列模式中,屬于行為模式的是(b)A.工廠模式B觀察者C適配器以上都是14、對象適配器模式是(a)原則的典型應用。A.合成聚合復用原則B.里式代換原則C

10、.依賴倒車t原則D.迪米特法則15、靜態(tài)工廠的核心角色是(a)A.抽象產(chǎn)品B.具體產(chǎn)品C.靜態(tài)工廠D.消費者16、在觀察者模式中,表述錯誤的是(c)A.觀察者角色的更新是被動的。B.被觀察者可以通知觀察者進行更新C.觀察者可以改變被觀察者的狀態(tài),再由被觀察者通知所有觀察者依據(jù)被觀察者的狀態(tài)進行。D.以上表述全部錯誤。17、以下關于創(chuàng)建型模式說法正確的是。(A)A.創(chuàng)建型模式關注的是對象的創(chuàng)建B.創(chuàng)建型模式關注的是功能的實現(xiàn)C.創(chuàng)建型模式關注的是組織類和對象的常用方法D.創(chuàng)建型模式關注的是對象間的協(xié)作18 .常用的描述設計模式的格式有(ABCD)。A.意圖B.動機C.適用性D.結構19 .以下關

11、于結構型模式說法正確的是(ACD)oA.結構型模式可以在不破壞類封裝性的基礎上,實現(xiàn)新的功能。B.結構型模式主要用于創(chuàng)建一組對象。C.結構型模式可以創(chuàng)建一組類的統(tǒng)一訪問接口D.結構型模式可以在不破壞類封裝性的基礎上,使得類可以同不曾估計到的系統(tǒng)進行交互。20 .以下屬于結構型模式的是(AB)oA.代理(Proxy)模式B.合成(Composite)模式C.命令(Command)模式D.觀察者(Observer)模式21 .在不破壞類封裝性的基礎上,使得類可以同不曾彳計到的系統(tǒng)進行交互。主要體現(xiàn)在(AD)A.適配器(Adapte)模式B.合成(Composite)模式C.原型(Prototype

12、)模式D.橋接(Bridge)模式22 .結構型模式中最體現(xiàn)擴展性的幾種模式是(BC)。A.適配器(Adapte)模式B.合成(Composite)模式C.裝飾(Decorator)模式D.橋接(Bridge)模式23 .行為類模式使用(B)在類間分派行為。A.接口B.繼承機制C.對象組合D.委托24 .以下屬于行為對象模式的是(BCD)A.模板(TemplateMethod)模式B.迭代器(Iterator)模式C.命令(Command)模式D.觀察者(Observer)模式25 .封裝分布于多個類之間的行為的模式是(C)。A.觀察者(Observer)模式B.迭代器(Iterator)模式

13、C.訪問者(Visitor)模式D.策略(Strategy)模式26 .利用繼承來提供DUCK的行為,會導致下列那些缺點?(ABCD)A.代碼在多個子類中重復B.運行時的行為不容易改變C.我們不能讓鴨子跳舞D.改變會牽一發(fā)而動全身,造成其他鴨子不想要的改變簡答題:1 .什么是設計模式?設計模式的目標是什么?答:設計模式通常是對于某一類的軟件設計問題的可重用的解決方案,將設計模式引入軟件設計和開發(fā)過程,其目的就在于要充分利用已有的軟件開發(fā)經(jīng)驗。2 .設計模式具有哪三大特點?答:(1)在特定的場景下有可重用性,對相同類型不同問題的環(huán)境,其解決方案都有效。可傳授性,即問題出現(xiàn)的機會很多,解決問題的方

14、案相同,人們相對可以接受。(3)有表示模式的名稱。3 .GOF設計模式常用的有幾種?GOF設計模式按照模式的目的可分為哪三類?答:行為型,結構型,創(chuàng)建型4 .畫出抽象工廠方法類圖(這類題自己看書去。)5 .針對接口編程,不針對實現(xiàn)編程的意義。答:主題與觀察者都是用接口:觀察者利用主題的接口向主題注冊,而主題利用觀察者接口通知觀察者。這樣可以讓兩者之間運作正常,又同時具有松耦合的優(yōu)點。6 .面向對象(OO)的原則有:答:1 .封裝變化2 .多用組合,少用繼承3 .針對接口編程,不針對實現(xiàn)編程4 .為交互對象之間的松耦合設計而努力5 .對擴展開放,對修改關閉6 .依賴抽象,不要依賴具體類7 .只和

15、朋友交談8 .別找我,我會找你9 .類應該只有一個改變的理由7 .耦合分為幾種?(1)內(nèi)容耦合(2)公共耦合(3)外部耦合(4)控制耦合(5)標記耦合(6)數(shù)據(jù)耦合(7)非直接耦合8 .GOF模式分為幾種,每種包含哪些模式?答:分為3種。創(chuàng)建型設計模式:簡單工廠模式,工廠方法模式,抽象工廠模式,建造者模式,原型模式,單例模式;結構型設計模式:適配器模式,橋接模式,組合模式,裝飾模式,外觀模式,輕量級模式,代理模式;行為性設計模式:責任鏈模式,命令模式,解釋器模式,迭代器模式,中介者模式,備忘錄模式,觀察者模式,狀態(tài)模式,策略者模式,模板方法模式,訪問者模式。綜合題1.某游戲公司現(xiàn)欲開發(fā)一款面向

16、兒童的模擬游戲,該游戲主要模擬現(xiàn)實世界中各種鴨子的發(fā)聲特征、飛行特征和外觀特征。游戲需要模擬的鴨子種類及其特征如下表所示:為支持將來能夠模擬更多種類鴨子的特征,采用某設計模式設計的類圖如下所示:其中,Duck為抽象類,描述了抽象的鴨子,而類RubberDuck、MallardDuck、CottonDuck和RedHeadDuck分別描述具體的鴨子種類,方法fly()、quack()和display()分別表示不同種類的鴨子都具有飛行特征、發(fā)聲特征和外觀特征;類FlyBehavior與QuackBehavior為抽象類,分別用于表示抽象的飛行行為與發(fā)聲行為;類FlyNoWay與FlyWithWi

17、ngs分別描述不能飛行的行為和用翅膀飛行的行為;類Quack、Squeak與QuackNoWay分別描述發(fā)出嘎嘎"聲的行為、發(fā)出橡皮與空氣摩擦聲的行為與不發(fā)聲的行為。C+代碼#include<iostream>usingnamespacestd;classFlyBehaviorpublic:virtualvoidfly()=0;classQuackBehaviorpublic:virtualvoidquack()=0;classFlyWithWings:publicFlyBehaviorpublic:voidfly()cout<<"使用翅膀飛行!&q

18、uot;<<endl;classFlyNoWay:publicFlyBehaviorpublic:voidfly()cout<<"不能飛行!"<<endl;classQuack:publicQuackBehaviorpublic:voidquack()cout<<"發(fā)出''嘎嘎'聲!"<<endl;classSqueak:publicQuackBehaviorpublic:voidquack()cout<<"發(fā)出空氣與橡皮摩擦聲!"<

19、<endl;);classQuackNoWay:publicQuackBehaviorpublic:voidquack()cout<<"不能發(fā)聲!"<<endl;);classDuckprotected:FlyBehavior*flyBehavior;QuackBehavior*quackBehavior;public:voidfly()flyBehavior->fly();voidquack()quackBehavior->quack();virtualvoiddisplay()=0;classRubberDuck:publicDuckpublic:RubberDuck()flyBehavior=newFlyNoWay();qu

溫馨提示

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

評論

0/150

提交評論