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

下載本文檔

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

文檔簡介

1、 設計模式習題 1、 設計模式一般用來解決什么樣的問題a A. 同一問題的不同表相 B 不同問題而同一表相 C.不同問題的不同表相 D.以上都不是 2、 以下屆于面向?qū)ο蟾驹敲吹氖莄 A. 繼承 B.封裝 C.里氏代換 D 都不是 3、 Open-Close 原那么的含義是一個軟件實體a A. 應當對擴展開放,對修改關(guān)閉. B. 應當對修改開放,對擴展關(guān)閉 C. 應當對繼承開放,對修改關(guān)閉 D. 以上都不對 4、 當我們想創(chuàng)立一個具體的對象而乂不希望指定具體的類時,可以使用 a 模式。 A. 創(chuàng)立型 B.結(jié)構(gòu)型 C 行為型 D.以上都可以 5、 要依賴于抽象,不要依賴于具體。即針對接口編程

2、,不要針對實現(xiàn)編程,是d 的表述 A. 開-閉原那么 B. 接口隔離原那么 C. 里氏代換原那么 D. 依賴倒轉(zhuǎn)原那么 6、 依據(jù)設計模式思想,程序開發(fā)中應優(yōu)先使用的是a 關(guān)系實現(xiàn)復用。 A, 委派 B.繼承 C 創(chuàng)立 D.以上都不對 復用方式:繼承和組合聚合組合委派 7、 設計模式的兩大主題是d A. 系統(tǒng)的維護與開發(fā) B 對象組合與類的繼承 C.系統(tǒng)架構(gòu)與系統(tǒng)開發(fā) D.系統(tǒng)復用與系統(tǒng)擴展 8、 單子模式中,兩個根本要點a b 和單子類自己提供單例 A. 構(gòu)造函數(shù)私有 B.唯一實例 C.靜態(tài)工廠方法 D.以上都不對 9、 以下模式中,屆于行為模式的是b A. 工廠模式 B 觀察者 C 適配器

3、以上都是 10、 “不要和陌生人說話 是d 原那么的通俗表述 A.接口隔離 B.里氏代換 C.依賴倒轉(zhuǎn) D.迪米特:一個對象應對其他對象 盡可能少的了解 11、 構(gòu)造者的的退化模式是通過合并c 角色完成退化的。 A.抽象產(chǎn)品 B 產(chǎn)品 C 創(chuàng)立者 D 使用者 12、 單子單例,單態(tài)模式類圖結(jié)構(gòu)如下: 以下論述中,關(guān)于 0.1 表述的不正確的選項是d A.1 表示,一個單例類中,最多可以有一個實例. B. 0.1 表示單例類中有不多于一個的實例 C. 0 表示單例類中可以沒有任何實例 D. 0 表示單例類可以提供其他非自身的實例 13、 對象適配器模式是a 原那么的典型應用。 A.合成聚合復用原

4、那么 B.里式代換原那么 C.依賴倒轉(zhuǎn)原那么 D. 迪米特法那么 14、 靜態(tài)工廠的核心角色是a A.抽象產(chǎn)品 B.具體產(chǎn)品 C.靜態(tài)工廠 D.消費者 15、 以下關(guān)于靜態(tài)工廠與工廠方法表述錯誤的選項是: a A. 兩者都滿足開閉原那么:靜態(tài)工廠以 if else 方式創(chuàng)立對象,增加需求的時 候會修改源代碼 B. 靜態(tài)工廠對具體產(chǎn)品的創(chuàng)立類別和創(chuàng)立時機的判斷是混和在一起的,這點 在工廠方法中 C. 不能形成靜態(tài)工廠的繼承結(jié)構(gòu) D. 在工廠方法模式中,對于存在繼承等級結(jié)構(gòu)的產(chǎn)品樹,產(chǎn)品的創(chuàng)立是通過 相應等級結(jié)構(gòu)的工廠創(chuàng)立的。 16、 在觀察者模式中,表述錯誤的選項是c A. 觀察者角色的更新是被

5、動的。 B. 被觀察者可以通知觀察者進行更新 C. 觀察者可以改變被觀察者的狀態(tài),再由被觀察者通知所有觀察者依據(jù)被觀 察者的狀態(tài)進行。 D. 以上表述全部錯誤。 17、 對于違反里式代換原那么的兩個類,可以采用的候選解決方案錯誤的選項是:d A. 創(chuàng)立一個新的抽象類 C,作為兩個具體類的超類,將 A 和 B 共同的行為移 動到 C中,從而解決 A 和 B 行為不完全一致的問題。 B. 將 B 到 A 的繼承關(guān)系改組成委派關(guān)系。 C. 區(qū)分是“IS-a還是 Has a。如果是“Is -a,可以使用繼承關(guān)系, 如果是 Has a應該改成委派關(guān)系 D. 以上方案錯誤 18. 對象組合的有點表述不當?shù)?/p>

6、是d A.容器類僅能通過被包含對象的接口來對其進行訪問。 B. “黑盒復用,封裝性好,因為被包含對象的內(nèi)部細節(jié)對外是不可見。 C. 通過獲取指向其它的具有相同類型的對象引用, 可以在運行期間動態(tài)地定義對象的組合 D. 造成極其嚴重的依賴關(guān)系。 19. 關(guān)于繼承表述錯誤的選項是:d A. 繼承是一種通過擴展一個已有對象的實現(xiàn),從而獲得新功能的復用方法。 B. 泛化類超類可以顯式地捕獲那些公共的屆性和方法。特殊類子類 那么通過附加屆性和方法來進行實現(xiàn)的擴展。 C. 破壞了封裝性,因為這會將父類的實現(xiàn)細節(jié)暴露給子類。 D. 繼承本質(zhì)上是“白盒復用,對父類的修改,不會影響到子類。 20. 對于依賴倒轉(zhuǎn)

7、的表述錯誤的選項是e A. 依賴于抽象而不依賴于具體,也就是針對接口編程。 B. 依賴倒轉(zhuǎn)的接口并非語法意義上的接口,而是,一個類對其他對象進行調(diào) 用時,所知道的方法集合。 C. 從選項 B 的角度論述,一個對象可以有多個接口。 D. 實現(xiàn)了同一接口的對象,可以在運行期間,順利地進行替換。而且不必知 道所示用的對象是那個實現(xiàn)類的實例。 E. 此題沒有正確答案。 21. 面向?qū)ο蟮牧鶙l根本原那么包括:開閉原那么,里式代換原那么,合成聚合原那么以 及 依賴倒轉(zhuǎn),迪米特法那么,單一原那么,接口隔離?。 22. 在存在繼承關(guān)系的情況下,方法向超類方向集中,而數(shù)據(jù)向子類方 向集中。 23. 適配器模式,

8、分為類的適配器和對象的適配器兩種實現(xiàn)。 其中類的適配器采用的是繼承關(guān)系,而對象適配器采用的是組合 聚合關(guān)系。 24. 設計模式的根本要素有名字,意圖,問題,解決方案, 參與者與協(xié)作者,實現(xiàn),一般性結(jié)構(gòu)。 25. 創(chuàng)立型模式的根本意圖是要把對象的創(chuàng)立和使用別離的責任進行分 離,從而降低系統(tǒng)的耦合度。 26. 工廠模式分為簡單工廠,工廠方法,抽象工廠三種類型 27. 門面模式是迪米特法那么的典型運用 28. MVC 莫型的根本工作原理是基于觀察者模式,實現(xiàn)是基于命令模式 29. 設計模式的思想根源是開閉根本原那么的宏觀運用,本質(zhì)上是沒有任何模式 的, 發(fā)現(xiàn)模式的人永遠是大師,而死守模式的人,最對只

9、能是一個工匠. UML 設計模式測試題 不定項選擇題: 1 .一個軟件產(chǎn)品是否成功,因素有 。 l 需求收集是否正確 l 體系結(jié)構(gòu)的構(gòu)建是否合理 l 測試是否完全 I 軟件的管理 2. 開發(fā)過程中最困難的一個環(huán)節(jié)是 。 人與人之間的交流 3 .用例是從用戶 的觀點對系統(tǒng)行為的一個描述。 4 .順序圖所表達的是基于 時間順序 的動態(tài)交互。 5 .當需要在工程中定制自己的元素時,可使用 構(gòu)造型來定制 。 6. 表示一個操作中的參數(shù)和返回值的數(shù)據(jù)類型的稱呼是形構(gòu) 。 7. 多重性 5, 10 表示5 或者 10 。 8. 在找出了類的繼承關(guān)系后,通常可以用 接口 來表示最上層的基類。 9. UM 序

10、的實現(xiàn)是一種特殊類型的繼承,因為它是指從一個 接口繼 承。 10. 使用用例的難點在于 用例中各個場景的具體步驟 。 II .收集用例的方法是 交談 。 12. 產(chǎn)生類圖和得到用例這兩個步驟,位于前面的是沒有固定順序 。 13. 面向?qū)ο罄碚撝?,對象之間發(fā)送信號,在 UML 犬態(tài)圖里就是事件 。 14. 順序圖中,動態(tài)創(chuàng)立對象表示法的特點是是在時間線上的某一點創(chuàng)立,結(jié) 束時尾部打 X 15. 當代軟件工程的特點是 。 l 允許各個階段進行迭代 l 各個階段沒有明顯的分界線 l 允許后期得到的信息返回,使得早期的能夠被修改 。 16. GRAPPLE 中最重要的段是 。 l 需求收集 l 需求分

11、析 l 用例開發(fā) l 編碼 l 測試 17. 設計模式的根本要素有 名稱,目的 意圖 ,解決方案,實施后到達的 效果 。 18. 當我們想創(chuàng)立一個具體的對象而乂不希望指定具體的類時, 可以使用 創(chuàng) 建性模式。 19. 當我們想將抽象局部和實現(xiàn)局部別離時,可以使用 橋接 模式。 20. 當我們想用不同的請求對客戶進行參數(shù)化時,可以使用 命令模 式。 21 .當我們想封裝不同算法并使它們可相互替換時,可以使用 策略模 式。 22.面向?qū)ο笙到y(tǒng)中功能復用的兩種最常用技術(shù)是 。 l 對象組合優(yōu)先使用 l 類繼承限制使用類繼承- 產(chǎn)生類爆炸 24. 對象組合是通過獲得 抽象類的指針 而在運行時刻動態(tài)定義

12、的。 25. 設計模式中應優(yōu)先使用的復用技術(shù)是 對象組合 。 26. 在 Lexi 系統(tǒng)中,我們把所有文檔元素都看作是圖元,這樣,它們就有了相 同的接口也叫類型 。 27. Lexi 系統(tǒng)中,我們之所以能對文檔采用 Composite 模式,是因為文檔的元 素之間有 遞歸樹型結(jié)構(gòu)關(guān)系。 填空題: 1. 軟件體系結(jié)構(gòu)是指一個系統(tǒng)的有目的的設計和規(guī)劃,這個設計規(guī)劃既不描 述 活動 ,也不描述 系統(tǒng)怎樣開發(fā) ,它只描述系統(tǒng)的 組成 元素 及其相互的 交互協(xié)作 。 2. 一個 UMLM 型只描述了一個系統(tǒng) 要做什么 ,它并沒告訴我們系統(tǒng) 是 怎么做 。 3. 接口是可以在整個模型中反復使用的一組行為,

13、是一個沒有 屆性 而只 有方法 的類。 4. 多重性指的是,某個類有 多個個對象可以和另一個類的 1 個 對 象關(guān)聯(lián)。 5. 當一個類的對象可以充當多種角色時, 自身 關(guān)聯(lián)就可能發(fā)生。 6. 在泛化關(guān)系中, 子類 可以替代父類 。也就是說,后者出現(xiàn)的地方, 23.面向?qū)ο笙到y(tǒng)中的“黑盒復用是指 對象組合 前者都可以出現(xiàn)。但是反過來卻不成立。 7 .最通常的依賴關(guān)系是一個類操作的 形構(gòu) 中用到了 另一個 類 的定義。 8. 組成是 強類型 的聚集,因為聚集中的每個局部體只能屆于 一 個 整體。 9. 實現(xiàn)的符號和繼承的符號有相似之處,兩者的唯一差異是實現(xiàn)關(guān)系用 虛 線 表小,繼承關(guān)系用 實線 表

14、小。 10. UMLW后的兩個重量級概念是 用例 和 面向?qū)ο?11. 狀態(tài)圖和類圖、順序圖不同之處在于,后兩種圖能夠?qū)?多個對 象 建立模型,而狀態(tài)圖只是對 1 個對象 建立模 型。 12. 狀態(tài)圖中 3 個常用的動作是 入口動作 、 出口動 作 和 do 動作,也就是對象處于這個狀態(tài)時應該做什么 14. 當邏輯發(fā)生分支時,在順序圖中用 支 表小,在協(xié)作圖中用 號 表示。 15. 順序圖強調(diào)的是交互的 時間順序,協(xié)作圖強調(diào)的是交互的 空間 關(guān)系 和參與交互的對象的 上下文環(huán)境 。 16. GRAPPLE 把開發(fā)過程分為 5 個 段,之中乂由許多 動作 組成。 17. GRAPPLE 程中,得

15、到初步類圖是在需求收集段,細化類圖是在需求 分析段。 18. 每一個設計模式都集中于一個特定的設計問題 ,描述了相互通信的 對象或者類以及解決方案和解決效果。 19. 面向?qū)ο笙到y(tǒng)中功能復用的兩種最常用技術(shù)是對象組合和類繼承 。 20. 設計模式中應優(yōu)先使用對象組合而不是類繼承。 簡答題 1. 類圖在 UML 中有何重要作用? 答:1.為開發(fā)人員提供這種模仿現(xiàn)實世界的表達方式。 2. 讓分析員使用客戶所采用的術(shù)語和客戶交流, 促使客戶說出所要解決的問題的 重要細節(jié)。 2. 闡述用例對于系統(tǒng)開發(fā)人員來說的價值。 答:是用來從用戶的觀察角度收集系統(tǒng)需求的一項技術(shù), 便于分析員與客戶和用 13.順序

16、圖中,消息用 水平箭頭線 線 表示。 表示;時間用 垂直虛 生命線發(fā)生的分 嵌套的序 戶交流,使系統(tǒng)更符合用戶的需求 3. 簡述如何在實際工作中發(fā)現(xiàn)類。 答:在與客戶的交談中,要注意客戶用來描述業(yè)務實體的名詞術(shù)語。 這些名詞可 作為領域模型中的類。 還要注意你聽到的動詞,因為這些動詞可能會構(gòu)成這些類中的操作。 當?shù)玫揭唤M類的核心列表后,應當向客戶詢問在業(yè)務過程中每個類的作用。 他們 的答復將告訴你這些類的職責。 4. 簡述怎樣發(fā)現(xiàn)類之間的繼承關(guān)系。 答: 作為候選的類有可能和它的父類、子類在談話中同時被發(fā)現(xiàn)。系統(tǒng)分析員意識到 某個類的屆性和操作也許能被運用到其他多個類當中去。 另一種可能的情況

17、是系統(tǒng)分析員注意到兩個或者多個類可能具有相同的屆性和 操作數(shù) 5. 試使用 UMLB 關(guān)系表示法,表示出大學計算機專業(yè)中如下這些課程的模型: C 語言程序設計、C+裙言程序設計、Windows 程序設計、網(wǎng)絡程序設計。注意抽 象類和依賴的使用。 6. 畫出圖形用戶界面 GUI 的狀態(tài)圖,要包括屏幕保護狀態(tài)。其中要說明相應的 事件、動作。 答:圖形用戶界面GUI是一個可以說明狀態(tài)轉(zhuǎn)移細節(jié)的例子。 在這里,假設 GUI 可以處于以下 3 種狀態(tài)之一: Initializing 初始化。 Working 工作。 Shut Down 關(guān)閉o 當翻開 PC 電源的時候,自啟動發(fā)生。因此 Turning

18、the PCon翻開 PC 是一個觸發(fā)器事件,它導致了 GUI 的狀態(tài)轉(zhuǎn)移到 Initializing 狀態(tài),而 Bootup自啟動是一個在轉(zhuǎn)移過程中執(zhí)行的動作。 由于 Initializing 狀態(tài)中活動的完成,GUI 將轉(zhuǎn)移進入 Working 狀態(tài)。當你對 PC 選擇 ShutDown關(guān)閉機器時,就引發(fā)了 ShutDown 觸發(fā)器事件,最后 PC 自己 切斷電源,整個過程結(jié)束。下面的狀態(tài)圖捕獲了 GUI 的這些狀態(tài)和轉(zhuǎn)移。 以下圖是 GUI 參加 了 Screensaving 狀態(tài)和保護條件的狀態(tài)圖,注意圖中的保護條件is Timeout, 被寫成一個布爾表達式。 7. 順序圖和協(xié)作圖中

19、,消息有哪三種?各自的意義和表示法什么? 答:消息可以是簡單的simple、同步的synchronous或異步的 asynchronous。簡單消息是從一個對象到另一個對象的控制流的轉(zhuǎn)移。 如果一 個對象發(fā)送了一個同步消息,那么它要等待對方對消息的應答,收到應答后才能 繼續(xù)自己的操作。而發(fā)送異步消息的對象不需要等待對方的應答便可以繼續(xù)自己 的操作。在順序圖中,簡單消息是一個簡單箭頭,同步消息是實心箭頭。異步消 息是一個半邊箭頭, 8. 畫出自動飲料銷售機中,理想場景和“錢數(shù)不正確的場景合并在一起的順 序圖 假設在飲料銷售機中有 3 個對象來做上述工作:前端Front它是飲料銷售機與 顧客之間的

20、接口,錢幣記錄儀Register它負責收集顧客投的錢幣,以及分 配器Dispenser。我們還假設錢幣記錄儀控制分配器對象。那么對象之間的交 互序列 可能如下所示: 1 .顧客向機器前端的槽縫中投入錢幣。 2 .顧客選擇所要購置的飲料品種。 3 .錢幣被轉(zhuǎn)送給記錄儀。 4 .由于這是一個理想情況下的場景, 假設有飲料存貨,那么記錄儀控制分 配器將一罐飲料投遞到銷售機的前端。 由于上述對應的序列圖只覆蓋了用例“ Buy soda的一個場景也就是一個實 例,因此它被稱之為實例順序圖instancesequencediagram。以下圖顯示了對應 的實例順序圖。注意圖中只有簡單消息,每個消息都引起控

21、制流程從一個對象轉(zhuǎn) 移到另一個對象。 對于“錢數(shù)不正確場景: 1 .記錄儀檢查顧客輸入的錢幣數(shù)星是否與所要購置的飲料價格匹配。 2 .如果輸入數(shù)量大于價格,那么記錄儀計算兩者之間的差額并檢查機器中 存有的金額。 3 .如果機器中剛好有能找給顧客的零錢, 那么記錄儀將零錢找給顧客,一 切按正常情況繼續(xù)進行。 4 .如果沒有零錢找給顧客,那么記錄儀退回憶客投入的錢幣,并顯示一個 消息,提示顧客重新輸入數(shù)量正確的金額。 5.如果顧客所輸入的金額少于所要購置的飲料價格,那么記錄儀什么也不做,機 器等待顧客繼續(xù)投入錢幣。 答: 為了表示順序圖中的每個“ if 分支,可以將“ if 選擇條件寫在方括 號中

22、,放到對應的消息箭頭上,即增加 input=price , changein reserve 和 change not in reserve3 個選擇條件。 每個條件都引起消息中的控制流的一個“分支, 將消息分為多條路徑。 不同的消息路徑最終可以到達同一個對象。 為了表達這種關(guān)系,接收對象的生命 線 可分為多余路徑。在消息序列的某一點上,信息的分支可以合并,生命線的路徑 也是如此。以下圖是參加了場景“錢數(shù)不正確后的圖。 9. 畫出自動飲料銷售機中,理想場景和“錢數(shù)不正確的場景合并在一起的協(xié) 作圖。 下面先來看看用例“ Buy Soda買飲料的最理想場景下的交互序列: 1 .顧客向機器前端的槽縫

23、中投入錢幣。 2 .顧客做出一個選擇,選擇所要購置的飲料品種。 3 .錢幣被轉(zhuǎn)送給記錄儀。 4 .由于這是一個理想情況下的場景,所以記錄儀控制分配器將一罐飲料投遞 到銷售機的前端。 這個場景的協(xié)作圖如以下圖所示。 下面再看“錢數(shù)不正確場景的協(xié)作圖。這個協(xié)作圖中要出現(xiàn)以下幾個條件: 1 .用戶輸入的錢數(shù)超過了所要購置的飲料價格。 2 .飲料銷售機中備有可找給顧客的零錢。 3 .飲料銷售機中沒有可找給顧客的零錢。 在協(xié)作圖中條件的表示方法與在順序圖中一樣,都是用方括號將條件表 達式括起來,放在消息名的前面。但是要注意的是消息的條件和序號之間的匹配 關(guān)系。 條件和序號可能會使圖變得復雜,因此讓我們一

24、步一步地來建立這個場 景的協(xié)作圖,這個圖的前提條件是用戶輸入的錢比所要購置的飲料價格高, 并且 機器中備有找給顧客的零錢。首先增加機器給顧客找零的消息,并為該消息附加 上條件。給顧客找零消息是檢查是否有找給顧客的零錢這一消息的直接后續(xù)消 息。為了說明兩條消息之間的這種關(guān)系, 這兩個消息采用同一序號,用序號后面 的點再接序號來區(qū)分它們。這叫做消息嵌套 nesting。以下圖說明了這個順序圖 的細節(jié)。 如果機器中沒有零錢可找會怎么樣呢?銷售機必須顯示一條“無零錢信息提示 給顧客,并將顧客投入的錢幣退出,提示顧客投入零錢。實際上,這時交易就結(jié) 束了。 要增加這個條件,就要增加控制流的分支??梢杂们短?/p>

25、序號表示這個控 制流的序號。因為它是第 2 個被嵌套的消息,因此圓點后面的序號是 2。最后, 由于交易已經(jīng)結(jié)束,該消息上要附加構(gòu)造型?transactionover 來說明交易結(jié) 束。此外還有另一個發(fā)送飲料的消息。以下圖是這個場景的順序圖。 10. 簡述接口對于構(gòu)件的重要意義。 答:只能通過構(gòu)件的接口來使用構(gòu)件中定義的操作。 構(gòu)件可以讓它的接口被其他構(gòu)件使用,以使其他構(gòu)件可以使用這個構(gòu)件中定義的 操作。提供效勞的構(gòu)件提供了導出接口,訪問效勞的構(gòu)件使用了導入接口。 11. 簡述當代面向?qū)ο筌浖こ痰奶攸c和優(yōu)點。 允許各個階段進行迭代 各個階段沒有明顯的分界線 允許后期得到的信息返回,使得早期的能

26、夠被修改 重用性高、維護性好、擴展性高 12. GRAPPLE 過程中,需求收集段的各個動作是什么?分別有什么工作產(chǎn)品? 答:1 發(fā)現(xiàn)業(yè)務過程 工作產(chǎn)品是一個或者一組能夠捕獲業(yè)務過程中的步驟和判定點的活動圖。 2 領域分析 工作產(chǎn)品是一個高層的類圖和會談記錄。 3 識別協(xié)作系統(tǒng) 工作產(chǎn)品是新建的系統(tǒng)的部署圖 4 發(fā)現(xiàn)系統(tǒng)需求 會議得到的工作產(chǎn)品是一個包圖。 5 將結(jié)果提交給客戶 這個動作的工作產(chǎn)品視不同的組織而不同。 13. 簡述類繼承和接口繼承的區(qū)別?我們應該盡量使用哪一種? 答:類繼承根據(jù)一個對象的實現(xiàn)定義了另一個對象的實現(xiàn)。 簡而言之,它是代碼 和表示的共享機制。然而,接口繼承描述了一個

27、對象什么時候能被用來替代另一 個對象。 類繼承是派生中的類將繼承父類的所有屆性和方法, 并且可以在派生類里添加自 己的屆性和方法,而接口繼承那么是在接口里只定義接口的方法, 沒有屆性,并且 方法不能實現(xiàn),只有在派生他的類才實現(xiàn)該方法。類繼承是編譯的時候新建對象, 而接口實例是在運行時刻創(chuàng)立對象。 我們應該盡量使用接口繼承,類繼承會產(chǎn)生 類爆炸現(xiàn)象 14. 只根據(jù)抽象類中定義的接口來操縱對象有什么好處? 1 客戶無須知道他們使用對象的特定類型,只須對象有客戶所期望的接口。 2 客戶無須知道他們使用的對象是用什么類來實現(xiàn)的,他們只須知道定義接口 的抽象類。 15. 可復用的面向?qū)ο笤O計的兩條原那么

28、是什么? 1. 針對接口編程,而不是針對實現(xiàn)編程。不要將變量聲明為一個特定類的實例 對象,而是讓他遵從抽象類所定義的接口 2. 優(yōu)先使用對象組合,而不是類繼承 16. 設計模式的兩大主題是什么? 對象組合,類繼承的討論 17. 面向?qū)ο笙到y(tǒng)中功能復用的兩種最常用技術(shù)是什么? 面向?qū)ο笙到y(tǒng)中功能復用的兩種最常用技術(shù)是類繼承和對象組合 object composition。 18. Lexi 系統(tǒng)的格式化問題中,我們引入了 Compositor 和 Composition 兩個類 來實現(xiàn)“策略模式。請畫出這兩個類各自的繼承關(guān)系和它們之間的協(xié)作關(guān)系。 Compositor 和 Composition

29、 Compositor 類。它的接口見下表可讓 Compositor 獲知何時去格式化哪些圖 元。它所格式化的圖元是一個被稱為 Composition 的特定圖元的各個子圖元。一 個Composition 在創(chuàng)立時得到一個 Compositor 子類實例,并在必要的時候如 用戶改變文檔的時候讓 Compositor 對它的圖元作 Compose作。 以下圖描述了 Composition 類和 Compositor 類之間的關(guān)系。 19. Lexi 系統(tǒng)的支持多種窗口平臺的問題中, 我們使用了 Window 和 WindowsImp 類來實現(xiàn)橋接模式。請畫出這兩個類各自的繼承關(guān)系和它們之間的協(xié)作

30、關(guān)系。 1、 設計模式一般用來解決什么樣的問題a A. 同一問題的不同表相 B 不同問題的同一表相 C.不同問題的不同表相 D.以上都不是 2、 以下屆于面向?qū)ο蟾驹敲吹氖莄 A. 繼承 B.封裝 C.里氏代換 D 都不是 3、 Open-Close 原那么的含義是一個軟件實體a A. 應當對擴展開放,對修改關(guān)閉. B. 應當對修改開放,對擴展關(guān)閉 C. 應當對繼承開放,對修改關(guān)閉 D. 以上都不對 4、 當我們想創(chuàng)立一個具體的對象而乂不希望指定具體的類時,可以使用 a 模式。 A. 創(chuàng)立型 B.結(jié)構(gòu)型 C 行為型 D.以上都可以 5、 要依賴于抽象,不要依賴于具體。即針對接口編程,不要針

31、對實現(xiàn)編程,是d 的表述 A. 開-閉原那么 B. 接口隔離原那么 C. 里氏代換原那么 D. 依賴倒轉(zhuǎn)原那么 6、 依據(jù)設計模式思想,程序開發(fā)中應優(yōu)先使用的是a 關(guān)系實現(xiàn)復用。 A, 委派 B.繼承 C 創(chuàng)立 D.以上都不對 復用方式:繼承和組合聚合組合委派 7、 設計模式的兩大主題是d A. 系統(tǒng)的維護與開發(fā) B 對象組合與類的繼承 C.系統(tǒng)架構(gòu)與系統(tǒng)開發(fā) D.系統(tǒng)復用與系統(tǒng)擴展 8、 單子模式中,兩個根本要點a b 和單子類自己提供單例 A. 構(gòu)造函數(shù)私有 B.唯一實例 C.靜態(tài)工廠方法 D.以上都不對 9、 以下模式中,屆于行為模式的是b A. 工廠模式 B 觀察者 C 適配器以上都是

32、 10、 “不要和陌生人說話 是d 原那么的通俗表述 A.接口隔離 B.里氏代換 C.依賴倒轉(zhuǎn) D.迪米特:一個對象應對其他對象 盡可能少的了解 11、 構(gòu)造者的的退化模式是通過合并c 角色完成退化的。 A.抽象產(chǎn)品 B 產(chǎn)品 C 創(chuàng)立者 D 使用者 12、 單子單例,單態(tài)模式類圖結(jié)構(gòu)如下: 以下論述中,關(guān)于 0.1 表述的不正確的選項是d A.1 表示,一個單例類中,最多可以有一個實例. B. 0.1 表示單例類中有不多于一個的實例 C. 0 表示單例類中可以沒有任何實例 D. 0 表示單例類可以提供其他非自身的實例 13、 對象適配器模式是a 原那么的典型應用。 A.合成聚合復用原那么 B

33、.里式代換原那么 C.依賴倒轉(zhuǎn)原那么 D. 迪米特法那么 14、 靜態(tài)工廠的核心角色是a A.抽象產(chǎn)品 B.具體產(chǎn)品 C.靜態(tài)工廠 D.消費者 15、 以下關(guān)于靜態(tài)工廠與工廠方法表述錯誤的選項是: a A. 兩者都滿足開閉原那么:靜態(tài)工廠以 if else 方式創(chuàng)立對象,增加需求的時 候會修改源代碼 B. 靜態(tài)工廠對具體產(chǎn)品的創(chuàng)立類別和創(chuàng)立時機的判斷是混和在一起的,這點 在工廠方法中 C. 不能形成靜態(tài)工廠的繼承結(jié)構(gòu) D. 在工廠方法模式中,對于存在繼承等級結(jié)構(gòu)的產(chǎn)品樹,產(chǎn)品的創(chuàng)立是通過 相應等級結(jié)構(gòu)的工廠創(chuàng)立的。 16、在觀察者模式中,表述錯誤的選項是 A.觀察者角色的更新是被動的。 B. 被觀察者可以通知觀察者進行更新 C. 觀察者可以改變被觀察者的狀態(tài),再由被觀察者通知所有觀察者依據(jù)被觀 察者的狀態(tài)進行。 D. 以上表述全部錯誤。 17. 對于違反里式代換原那么的

溫馨提示

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

評論

0/150

提交評論