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

