東 北 大 學(xué) 繼 續(xù) 教 育 學(xué) 院
軟件設(shè)計(jì)模式 X 試 卷(作業(yè)考核 線上2) A 卷(共 7 頁(yè))
總分 題號(hào) 一 二 三 四 五 六 七 八 九 十
得分 一、單選題(共40分,每題2分)
1. 常用的基本設(shè)計(jì)模式可分為()
A.創(chuàng)建型、結(jié)構(gòu)型和行為型 B. 對(duì)象型、結(jié)構(gòu)型和行為型
C.過(guò)程型、結(jié)構(gòu)型和行為型 D. 抽象型、接口型和實(shí)現(xiàn)型
2. 對(duì)以下開閉原則的描述錯(cuò)誤的是()
A.開閉原則與“對(duì)可變性的封裝原則”沒有相似性
B.找到個(gè)系統(tǒng)的可變?cè)?,將它封裝起來(lái),叫開閉原則
C.對(duì)修改關(guān)閉,是其原則之一
D.從抽象層導(dǎo)出一個(gè)或多個(gè)新具體類可以改變系統(tǒng)的行為,是其原則之一
3. “不要和陌生人說(shuō)話”是()原則的通俗表述。
A. 接口隔離 B. 里氏替換 C. 依賴倒置 D. 迪米特
4. 當(dāng)創(chuàng)建一個(gè)具體的對(duì)象而又不希望指定具體的類時(shí),可以使用()
A. 結(jié)構(gòu)型 B. 創(chuàng)建型 C. 行為型 D.以上都可以
5. 以下( )是利用一個(gè)對(duì)象,快速地生成一批對(duì)象。
A. 抽象工廠(Abstract Factory)模式 B. 原型(Prototype)模式
C. 合成(Composite)模式 D. 橋接(Bridge)模式
6. 以下( )用來(lái)描述建造者( Builder )。
A. 定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類
B. 將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示
C. 保證一個(gè)類僅有一個(gè)實(shí)例,并提供→個(gè)訪問(wèn)它的全周訪問(wèn)點(diǎn)
D. 運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象
7. 以下( )用來(lái)描述工廠方法(Factory Method)模式。
A. 提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無(wú)須指定它們具體的類
B. 表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作。它使用戶可以在不改變各元素的類的前提下定義作用于這些元素的新操作
C. 定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類。該模式使一個(gè)類的實(shí)例化延遲到其子類
D. 定義一系列的算法,把它們一個(gè)個(gè)封裝起來(lái),并且使它們可相互替換。本模式使得算法可獨(dú)立于使用它的客戶而變化
8. 對(duì)象適配器模式是( )原則的典型應(yīng)用。
A. 將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口,本模式使原本由于接口不兼容而不能一起工作的那些類可以一起工作。
B. 定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類
C. 表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作,它使用戶可以在不改變各元素的類的前提下定義作用于這些元素的新操作
D. 將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使用戶可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化; 對(duì)請(qǐng)求排隊(duì)或記錄請(qǐng)求日志,以及支持可撤銷的操作
9. 關(guān)于模式適用性,以下( )不適合使用Flyweight(享元)模式。
A. 一個(gè)應(yīng)用程序使用了大量的對(duì)象
B. 完全由于使用大量的對(duì)象, 造成很大的存儲(chǔ)開銷
C. 對(duì)象的大多數(shù)狀態(tài)都可變?yōu)橥獠繝顟B(tài)
D. 用戶想使用一個(gè)已經(jīng)存在的類,而它的接口不符合用戶的需求
10. 如果有一個(gè)2MB 的文本(英文字母),為了對(duì)其中的字母進(jìn)行分類和計(jì)數(shù),若為文本中的每個(gè)字母都定義一個(gè)對(duì)象顯然不合實(shí)際,對(duì)與該問(wèn)題最好可使用的模式是( )。
A. 裝飾(Decorator)模式 B. 享元( Flyweight )模式
C. 合成(Composite)模式 D.命令(Command)模式
11. 關(guān)于模式適用性, 以下( )適合使用組合(Composite) 模式。
A. 用戶想使用一個(gè)已經(jīng)存在的類, 而它的接口不符合用戶的需求
B. 當(dāng)一個(gè)類的實(shí)例只能有幾個(gè)不同狀態(tài)組合中的一種時(shí)
C. 用戶想表示對(duì)象的部分-整體層次結(jié)構(gòu)
D. 一個(gè)對(duì)象的行為取決于它的狀態(tài), 并且它必須在運(yùn)行時(shí)根據(jù)狀態(tài)改變它的行為
12. 以下意圖( )可用來(lái)描述命令(Command)。
A. 將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使用戶可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化; 對(duì)請(qǐng)求排隊(duì)或記錄請(qǐng)求日志,以及支持可撤銷的操作
B.定義一系列的算法,把它們一個(gè)個(gè)封裝起來(lái), 并且使它們可相互替換, 本模式使得算法可獨(dú)立于使用它的客戶而變化
C. 為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)
D. 保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)
13. 以下不屬于行為型模式的是( )。
A.命令(Command ) B.策略(Strategy) C. 備忘錄(Memento ) D.橋接(Bridge )
14. 關(guān)于模式適用性, 以下( )不適合使用模板方法(Template Method) 模式。
A. 一次性實(shí)現(xiàn)-個(gè)算法的不變的部分,并將可變的行為留給子類來(lái)實(shí)現(xiàn)
B. 當(dāng)對(duì)一個(gè)對(duì)象的改變需要同時(shí)改變其他對(duì)象,而不知道具體有多少對(duì)象有待改變
C. 各子類中公共的行為應(yīng)被提取出來(lái)并集中到一個(gè)公共父類中以避免代碼重復(fù)。首先識(shí)別現(xiàn)有代碼中的不同之處,并且將不同之處分離為新的操作。最后,用一個(gè)調(diào)用這些新的操作的模板方法來(lái)替換這些不同的代碼
D.控制子類擴(kuò)展。模板方法只在特定點(diǎn)調(diào)用“hook”操作,這樣就只允許在這些點(diǎn)進(jìn)行擴(kuò)展
15. 關(guān)于模式適用性,( )不適合使用職責(zé)鏈(Chain of Responsibility)模式。
A. 有多個(gè)的對(duì)象可以處理一個(gè)請(qǐng)求,哪個(gè)對(duì)象處理該請(qǐng)求運(yùn)行時(shí)刻自動(dòng)確定
B. 在需要用比較通用和復(fù)雜的對(duì)象指針代替簡(jiǎn)單的指針的時(shí)候
C. 用戶想在不明確指定接收者的情況下,向多個(gè)對(duì)象中的一個(gè)提交一個(gè)請(qǐng)求
D. 可處理一個(gè)請(qǐng)求的對(duì)象集合應(yīng)被動(dòng)態(tài)指定
16. 以下意圖( )可用來(lái)描述中介者(Mediator) 。
A. 提供一種方法順序訪問(wèn)一個(gè)聚合對(duì)象中各個(gè)元素,而又不需暴露該對(duì)象的內(nèi)部表示
B. 將抽象部分與它的實(shí)現(xiàn)部分分離, 使它們都可以獨(dú)立變化
C. 定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類
D. 用-個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互
17. 以下意圖( )可用來(lái)描述解釋器(Interpreter)。
A. 將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立變化
B. 給定一個(gè)語(yǔ)言, 定義它的文法的一種表示,并定義一個(gè)解釋器,這個(gè)解釋器使用該表示來(lái)解釋語(yǔ)言中的句子
C. 將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示
D. 為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)
18. 以下意圖( )可用來(lái)描述訪問(wèn)者(Visitor )。
A. 定義對(duì)象間的一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)都得到通知并被自動(dòng)更新
B. 表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作
C. 在不破壞封裝性的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài),這樣以后就可將該對(duì)象恢復(fù)到原先保存的狀態(tài)
D. 用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并且通過(guò)復(fù)制這些原型創(chuàng)建新的對(duì)象
19. 以下意圖( )可用來(lái)描述狀態(tài)( State )。
A. 使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免請(qǐng)求的發(fā)送者和接收者之間的精合關(guān)系
B. 提供一種方法順序訪問(wèn)一個(gè)聚合對(duì)象中各個(gè)元素而又不需暴露該對(duì)象的內(nèi)部表示
C. 允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為。對(duì)象看起來(lái)似乎修改了它的類
D. 在不破壞封裝性的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài),這樣以后就可將該對(duì)象恢復(fù)到原先保存的狀態(tài)
20. 設(shè)計(jì)模式具有的優(yōu)點(diǎn)()。
A. 適應(yīng)需求變化 B. 程序易于理解
C.減少開發(fā)過(guò)程中的代碼開發(fā)工作量 D. 簡(jiǎn)化軟件系統(tǒng)的設(shè)計(jì)
二、多選題(共10分,每題2分)
1. 以下是模式的基本要素的是( )。
A. 名稱 B. 意圖 C. 解決方案 D. 參與者和協(xié)作者
2. 以下屬于創(chuàng)建型模式的是( )。
A.抽象工廠(Ab stract Factory)模式 B.合成(Composite) 模式
C. 單例(Singleton)模式 D. 橋接(Bridge)模式
3. 以下關(guān)于結(jié)構(gòu)型模式說(shuō)法正確的是( )。
A. 結(jié)構(gòu)型模式可以在不破壞類封裝性的基礎(chǔ)上, 實(shí)現(xiàn)新的功能
B. 結(jié)構(gòu)型模式主要用于創(chuàng)建一組對(duì)象
C. 結(jié)構(gòu)型模式可以創(chuàng)建一組類的統(tǒng)→訪問(wèn)接口
D. 結(jié)構(gòu)型模式可以在不破壞類封裝性的基礎(chǔ)上, 使類可以同不曾估計(jì)到的系統(tǒng)進(jìn)行交互
4. 以下屬于行為對(duì)象模式的是( )。
A. 裝飾(Decorator)模式 B. 迭代器(Iterator)模式
C. 命令(Command)模式 D. 中介者(Mediator)模式
5. 下面( )是訪問(wèn)者模式的優(yōu)缺點(diǎn)。
A. 訪問(wèn)者模式使得易于增加新的操作 B. 訪問(wèn)者集中相關(guān)的操作而分離無(wú)關(guān)的操作
C. 增加新的ConcreteElment 類很困難 D. 通過(guò)類層次進(jìn)行訪問(wèn)
三、判斷題(共10分,每題1分;請(qǐng)?jiān)谡J(rèn)為正確的題目后面寫T,錯(cuò)誤的題目后面寫F)
1. 設(shè)計(jì)模式的兩大主題是系統(tǒng)復(fù)用與系統(tǒng)擴(kuò)展。( )
2. 抽象工廠模式提供了一系列相關(guān)或相互依賴對(duì)象的接口且必須指定他們具體的類。( )
3. 對(duì)象適配器模式是依賴倒轉(zhuǎn)原則的典型應(yīng)用。( )
4. Open-Close原則的含義是一個(gè)軟件實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。( )
5. Singleton(單例)模式屬于結(jié)構(gòu)性模式。( )
6. 常用的設(shè)計(jì)模式可分為過(guò)程型、創(chuàng)建型和結(jié)構(gòu)型。( )
7. 對(duì)觀察者模式,觸發(fā)事件的對(duì)象——Subject對(duì)象不需要知道觀察事件的所有對(duì)象。( )
8. 通過(guò)在問(wèn)題領(lǐng)域中使用模式,可以用一種不同的方式來(lái)看待問(wèn)題。( )
9. 對(duì)象適配器模式是依賴倒轉(zhuǎn)原則的典型應(yīng)用。( )
10. Template Method是用以幫助從不同的步驟中抽象出一個(gè)通用的過(guò)程的模式。( )
四、名詞解釋(共15分,每題3分)
1. 設(shè)計(jì)模式
2. 開閉原則
3.單一職責(zé)原則
4.依賴關(guān)系
5.組合關(guān)系
五、簡(jiǎn)答題(共15分,每題5分)
1. 設(shè)計(jì)模式一般有哪幾個(gè)基本要素?
2. 創(chuàng)建型模式分包括哪幾種設(shè)計(jì)模式,各是什么并簡(jiǎn)要說(shuō)明。
3. 說(shuō)明訪問(wèn)者模式的定義與主要優(yōu)缺點(diǎn)。
六、綜合題(共10分)
當(dāng)“人民幣匯率” 升值時(shí), 進(jìn)口公司的進(jìn)口產(chǎn)品成本降低且利潤(rùn)率提升,出口公司的出口產(chǎn)品收入降低且利潤(rùn)率降低; 當(dāng)“人民幣匯率” 貶值時(shí),進(jìn)口公司的進(jìn)口產(chǎn)品成本提升且利潤(rùn)率降低, 出口公司的出口產(chǎn)品收入提升且利潤(rùn)率提升。利用觀察者模式設(shè)計(jì)一個(gè)程序, 分析“人民幣匯率”的升值或貶值對(duì)進(jìn)口公司的進(jìn)口產(chǎn)品成本或出口公司的出口產(chǎn)品收入以及公司的利潤(rùn)率的影響。
提示:這里的匯率(Rate) 類是抽象目標(biāo)類,它包含了保存觀察者(Company ) 的List 和增加/刪除觀察者的方法, 以及有關(guān)匯率改變的抽象方法change(int number); 而人民幣匯率(RMBrate)類是具體目標(biāo),它實(shí)現(xiàn)了父類的change(int number)方法,即當(dāng)人民幣匯率發(fā)生改變時(shí)通過(guò)相關(guān)公司; 公司(Company)類是抽象觀察者, 它定義了一個(gè)有關(guān)匯率反應(yīng)的抽象方法respons巳(int number); 進(jìn)口公司( ImportCompany )類和出口公司( E xportCompany )類是具體觀察者類,它們實(shí)現(xiàn)了父類的response(int
number)方法, 即當(dāng)它們接收到匯率發(fā)生改變的通知時(shí)作為相應(yīng)的反應(yīng)。
請(qǐng)畫出該程序的類圖。
奧鵬,國(guó)開,廣開,電大在線,各省平臺(tái),新疆一體化等平臺(tái)學(xué)習(xí)
詳情請(qǐng)咨詢QQ : 3230981406或微信:aopopenfd777

