設計模式題庫(修改后).doc_第1頁
設計模式題庫(修改后).doc_第2頁
設計模式題庫(修改后).doc_第3頁
設計模式題庫(修改后).doc_第4頁
設計模式題庫(修改后).doc_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1. 設計模式的原理? (C)C. 面向接口編程2. 以下對開-閉原則的一些描述錯誤的是?(A)A. 開-閉原則與對可變性的封裝原則沒有相似性.3. 以下屬于創(chuàng)建型模式是? (A)B.BUILDER(生成器)C. PROTOTYPE(原型) D.SINGLETON(單件)4. 以下屬于結構型模式是? (D)COMPOSITE(組合) B. ADAPTER(適配器)B. FLYWEIGHT(享元)5. 以下屬于行為型模式是? (D )6. COMMAND(命令)7. STRATEGY(策略)8. MEMENTO(備忘錄)/*23模式意圖*/6. 以下意圖那個是用來描述ABSTRACT FACTORY(抽象工廠)?(A)A. 提供一個創(chuàng)建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。7. 以下意圖那個是用來描述BUILDER(生成器)?(B)將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創(chuàng)建不同的表示。8. 以下意圖那個是用來描述FACTORY METHOD(工廠方法)?(C)C.定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。該模式使一個類的實例化延遲到其子類。9. 以下意圖那個是用來描述PROTOTYPE(原型)?(D)D.用原型實例指定創(chuàng)建對象的種類,并且通過拷貝這些原型創(chuàng)建新的對象。10.以下意圖那個是用來描述SINGLETON(單件)?(B)B.保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。11. 以下意圖那個是用來描述ADAPTER(適配器)?(A)A.將一個類的接口轉換成客戶希望的另外一個接口。本模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。12. 以下意圖那個是用來描述BRIDGE(橋接)?(B)B.將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。13. 以下意圖那個是用來描述COMPOSITE(組合)?(C)C.將對象組合成樹形結構以表示“部分-整體”的層次結構。14. 以下意圖那個是用來描述DECORATOR(裝飾)?(D)動態(tài)地給一個對象添加一些額外的職責。15. 以下意圖那個是用來描述 FACADE(外觀)?(A)A.為子系統(tǒng)中的一組接口提供一個一致的界面,本模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。16. 以下意圖那個是用來描述FLYWEIGHT(享元)?(B)B.運用共享技術有效地支持大量細粒度的對象。17. 以下意圖那個是用來描述 PROXY(代理)?(C)C.為其他對象提供一種代理以控制對這個對象的訪問。18. 以下意圖那個是用來描述CHAIN OF RESPONSIBILITY(職責鏈)?(D)D.使多個對象都有機會處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關系。19. 以下意圖那個是用來描述 COMMAND(命令)?(A)A.將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數(shù)化;對請求排隊或記錄請求日志,以及支持可撤消的操作20. 以下意圖那個是用來描述 INTERPRETER(解釋器)?(B)B.給定一個語言,定義它的文法的一種表示,并定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。21. 以下意圖那個是用來描述 ITERATOR(迭代器)?(C)。C.提供一種方法順序訪問一個聚合對象中各個元素, 而又不需暴露該對象的內部表示。22. 以下意圖那個是用來描述 MEDIATOR(中介者)?(D)D.用一個中介對象來封裝一系列的對象交互。23. 以下意圖那個是用來描述 MEMENTO(備忘錄)?(A)A.在不破壞封裝性的前提下,捕獲一個對象的內部狀態(tài),并在該對象之外保存這個狀態(tài)。這樣以后就可將該對象恢復到原先保存的狀態(tài)。24. 以下意圖那個是用來描述 OBSERVER(觀察者)?(B)B.定義對象間的一種一對多的依賴關系,當一個對象的狀態(tài)發(fā)生改變時, 所有依賴于它的對象都得到通知并被自動更新。25. 以下意圖那個是用來描述 STATE(狀態(tài))?(C)C.允許一個對象在其內部狀態(tài)改變時改變它的行為。對象看起來似乎修改了它的類。26. 以下意圖那個是用來描述 STRATEGY(策略)?(D)D.定義一系列的算法,把它們一個個封裝起來, 并且使它們可相互替換27. 以下意圖那個是用來描述 TEMPLATE METHOD(模板方法)?(A)A.定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。28. 以下意圖那個是用來描述 VISITOR(訪問者)?(B)B.表示一個作用于某對象結構中的各元素的操作。/* 23模式的結構圖*/29.下圖結構圖描述的是那種 模式?(A)A. ABSTRACT FACTORY(抽象工廠)30.下圖結構圖描述的是那種 模式?(B)B.BUILDER(生成器)31. 下圖結構圖描述的是那種 模式?(C)A. FACTORY METHOD(工廠方法)32.下圖結構圖描述的是那種 模式?(C)A. ADAPTER(適配器)33.下圖結構圖描述的是那種 模式?(C)A. PROXY(代理)34. 下圖結構圖描述的是那種 模式?(D)A. STRATEGY(策略)33.下圖結構圖描述的是那種 模式?(D)A. STRATEGY(策略)/*23模式的適用性*/34.關于模式適用性,在以下情況適合使用Abstract Factory模式?A.一個系統(tǒng)要獨立于它的產品的創(chuàng)建、組合和表示時。B.一個系統(tǒng)要由多個產品系列中的一個來配置時。C.當你要強調一系列相關的產品對象的設計以便進行聯(lián)合使用時。35. 關于模式適用性,在以下情況適合使用FACTORY METHOD模式?(C)A. 當一個類不知道它所必須創(chuàng)建的對象的類的時候。B.當一個類希望由它的子類來指定它所創(chuàng)建的對象的時候。D.當類將創(chuàng)建對象的職責委托給多個幫助子類中的某一個,并且你希望將哪一個幫助子類是代理者這一信息局部化的時候。36.關于模式適用性,在以下情況可以使用builder模式?(B)B.當創(chuàng)建復雜對象的算法應該獨立于該對象的組成部分以及它們的裝配方式時。37.關于模式適用性,在以下情況適合使用Factory Method模式?(A)B.當一個類希望由它的子類來指定它所創(chuàng)建的對象的時候。C.當類將創(chuàng)建對象的職責委托給多個幫助子類中的某一個,并且你希望將哪一個幫助子類是代理者這一信息局部化的時候。D.當一個類不知道它所必須創(chuàng)建的對象的類的時候。38.關于模式適用性,在以下情況適合使用PROTOTYPE模式?(B)A.當要實例化的類是在運行時刻指定時,例如,通過動態(tài)裝載C.為了避免創(chuàng)建一個與產品類層次平行的工廠類層次時D.當一個類的實例只能有幾個不同狀態(tài)組合中的一種時39.關于模式適用性,在以下情況適合使用Singleton模式?(C)C.當這個唯一實例應該是通過子類化可擴展的,并且客戶應該無需更改代碼就能使用一個擴展的實例時。40. 關于模式適用性,在以下情況適合使用Adapter(適配器)模式?(D)A.你想使用一個已經存在的類,而它的接口不符合你的需求。B.你想創(chuàng)建一個可以復用的類,該類可以與其他不相關的類或不可預見的類(即那些接口可能不一定兼容的類)協(xié)同工作。B.你想使用一些已經存在的子類,但是不可能對每一個都進行子類化以匹配它們的接口。對象適配器可以適配它的父類接口。41. 關于模式適用性,在以下情況適合使用Bridge(橋接)模式?(A)B.類的抽象以及它的實現(xiàn)都應該可以通過生成子類的方法加以擴充。這時B r i d g e模式使你可以對不同的抽象接口和實現(xiàn)部分進行組合,并分別對它們進行擴充。C.對一個抽象的實現(xiàn)部分的修改應對客戶不產生影響,即客戶的代碼不必重新編譯。D.客戶程序與抽象類的實現(xiàn)部分之間存在著很大的依賴性。42. 關于模式適用性,在以下情況適合使用COMPOSITE(組合)模式?(B)A.你想使用一個已經存在的類,而它的接口不符合你的需求。C. 當一個類的實例只能有幾個不同狀態(tài)組合中的一種時D. 一個對象的行為取決于它的狀態(tài), 并且它必須在運行時刻根據(jù)狀態(tài)改變它的行為。43. 關于模式適用性,在以下情況適合使用DECORATOR(裝飾)模式?(C)A. 在不影響其他對象的情況下,以動態(tài)、透明的方式給單個對象添加職責。B. 處理那些可以撤消的職責。D. 當不能采用生成子類的方法進行擴充時。一種情況是,可能有大量獨立的擴展,為支持每一種組合將產生大量的子類,使得子類數(shù)目呈爆炸性增長。另一種情況可能是因為類定義被隱藏,或類定義不能用于生成子類。44. 關于模式適用性,在以下情況適合使用FLYWEIGHT(享元)模式?(D)A.一個應用程序使用了大量的對象。B.完全由于使用大量的對象,造成很大的存儲開銷。C.對象的大多數(shù)狀態(tài)都可變?yōu)橥獠繝顟B(tài)。45. 關于模式適用性,在以下情況適合使用PROXY(代理)模式?(A)根據(jù)需要創(chuàng)建開銷很大的對象C.在需要用比較通用和復雜的對象指針代替簡單的指針的時候D.取代了簡單的指針,它在訪問對象時執(zhí)行一些附加操作。46.關于模式適用性,在以下情況適合使用CHAIN OF RESPONSIBILITY(職責鏈) 模式?(B)A. 有多個的對象可以處理一個請求,哪個對象處理該請求運行時刻自動確定。C. 你想在不明確指定接收者的情況下,向多個對象中的一個提交一個請求。D. 可處理一個請求的對象集合應被動態(tài)指定。47. 關于模式適用性,在以下情況適合使用COMMAND(命令)模式?(C)A. 抽象出待執(zhí)行的動作以參數(shù)化某對象,使用過程語言中的回調(c a l l b a c k)函數(shù)表達這種參數(shù)化機制。B. Java語言中的:AWT的事件處理D. 一個系統(tǒng)需要支持交易(transaction).一個交易結構封裝了一組數(shù)據(jù)更新命令.48. 關于模式適用性,在以下情況適合使用OBSERVER(觀察者)模式?(D)A.當一個抽象模型有兩個方面, 其中一個方面依賴于另一方面。將這二者封裝在獨立的對象中以使它們可以各自獨立地改變和復用。B.當對一個對象的改變需要同時改變其它對象, 而不知道具體有多少對象有待改變。C. 當一個對象必須通知其它對象,而它又不能假定其它對象是誰。換言之, 你不希望這些對象是緊密耦合的。49. 關于模式適用性,在以下情況適合使用 STRATEGY(策略) 模式?(A)B.許多相關的類僅僅是行為有異?!安呗浴碧峁┝艘环N用多個行為中的一個行為來配置一個類的方法。C. 需要使用一個算法的不同變體。例如,你可能會定義一些反映不同的空間/時間權衡的算法。當這些變體實現(xiàn)為一個算法的類層次時 H O 8 7 ,可以使用策略模式。D. 算法使用客戶不應該知道的數(shù)據(jù)。可使用策略模式以避免暴露復雜的、與算法相關的數(shù)據(jù)結構。50. 關于模式適用性,在以下情況適合使用 TEMPLATE METHOD(模板方法)模式?(B)A. 一次性實現(xiàn)一個算法的不變的部分,并將可變的行為留給子類來實現(xiàn)。C. 各子類中公共的行為應被提取出來并集中到一個公共父類中以避免代碼重復。首先識別現(xiàn)有代碼中的不同之處,并且將不同之處分離為新的操作。最后,用一個調用這些新的操作的模板方法來替換這些不同的代碼。D.控制子類擴展。模板方法只在特定點調用“ h o o k”操作(參見效果一節(jié)),這樣就只允許在這些點進行擴展。/* 模式多選題*/51. 以下有關ABSTRACT FACTORY(抽象工廠)這種模式的一些優(yōu)點和缺點描述正確的是? (A,B,C,D)A. 它分離了具體的類B. 它使得易于交換產品系列C. 它有利于產品的一致性D. 難以支持新種類的產品52,當應用Factory Method模式時要考慮下面哪些問題? (A,B,C,D)A. 主要有兩種不同的情況B. 參數(shù)化工廠方法C. 特定語言的變化和問題D. 使用模板以避免創(chuàng)建子類53.下面列出P r o t o t y p e模式的一些優(yōu)點正確的是?(A,B,C,D)A. 運行時刻增加和刪除產品B. 改變值以指定新對象C. 減少子類的構造D. 用類動態(tài)配置應用54, 使用P r o t o t y p e原型模式時以下屬于要考慮的問題有那些?(ABC)A,使用一個原型管理器B. 實現(xiàn)克隆操作C.初始化克隆對象55,以下屬于 S i n g l e t o n模式的優(yōu)點是?(A,B,C,D)A. 對唯一實例的受控訪問B. 允許對操作和表示的精化C. 允許可變數(shù)目的實例D. 比類操作更靈活56,關于模式適用性,在以下情況適合使用FLYWEIGHT(享元)模式?(A,B,C)A.一個應用程序使用了大量的對象。B.完全由于使用大量的對象,造成很大的存儲開銷。C.對象的大多數(shù)狀態(tài)都可變?yōu)橥獠繝顟B(tài)。57. B r i d g e模式有以下哪些優(yōu)點?(A,B,D)A. 分離接口及其實現(xiàn)部分B. 提高可擴充性D實現(xiàn)細節(jié)對客戶透明58. 使用B r i d g e模式時需要注意以下哪些問題?(A,B,C)Implementor (Wi n d o w I m p ) 定義實現(xiàn)類的接口,該接口不一定要與A b s t r a c t i o n的接口完全一致;事實上這兩個接口可以完全不同。一般來講, I m p l e m e n t o r接口僅提供基本操作,而A b s t r a c t i o n則定義了基于這些基本操作的較高層次的操作。A. 僅有一個ImplementorB. 創(chuàng)建正確的I m p l e m e n t o r對象C. 共享I m p l e m e n t o r對象59. 我們在實現(xiàn)C o m p o s i t e模式時需要考慮以下幾個問題?(A,B,C,D)A,顯式的父部件引用B,共享組件C,最大化C o m p o n e n t接口D,聲明管理子部件的操作60,D e c o r a t o r模式主要兩個優(yōu)點有以下那些?(A,B)A,比靜態(tài)繼承更靈活B,避免在層次結構高層的類有太多的特征61,D e c o r a t o r模式主要兩個缺點主要有以下那些?(C,D)C,有許多小對象,很容易對它們進行定制,但是很難學習這些系統(tǒng),排錯也很困難。D,Decorator與它的C o m p o n e n t不一樣,D e c o r a t o r是一個透明的包裝。62,使用D e c o r a t o r模式時應注意以下幾點?(A,B,C,D)A,接口的一致性B,省略抽象的D e c o r a t o r類C,保持C o m p o n e n t類的簡單性D,改變對象外殼與改變對象內核63關于模式適用性,在以下情況適合使用CHAIN OF RESPONSIBILITY(職責鏈) 模式?(A,C,D)A. 有多個的對象可以處理一個請求,哪個對象處理該請求運行時刻自動確定。C. 你想在不明確指定接收者的情況下,向多個對象中的一個提交一個請求。D. 可處理一個請求的對象集合應被動態(tài)指定。64,關于模式適用性,在以下情況適合使用COM

溫馨提示

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

評論

0/150

提交評論