東北大學(xué)23年3月考試《軟件設(shè)計(jì)模式X》考核作業(yè)【資料答案】

可做奧鵬全部院校在線離線作業(yè)畢業(yè)論文QQ:3230981406 微信:aopopenfd777

發(fā)布時(shí)間:2023-03-21 11:52:37來源:admin瀏覽: 0 次

奧鵬,國(guó)開,廣開,電大在線,各省平臺(tái),新疆一體化等平臺(tái)學(xué)習(xí)
詳情請(qǐng)咨詢QQ : 3230981406或微信:aopopenfd777


東 北 大 學(xué) 繼 續(xù) 教 育 學(xué) 院

軟件設(shè)計(jì)模式 X  試 卷(作業(yè)考核 線上2)  B  卷(共  7   頁(yè))     

總分 題號(hào) 一 二 三 四 五 六 七 八 九 十

得分         

一、單選題(共40分,每題2分)

1. 常用的基本設(shè)計(jì)模式可分為()

A.創(chuàng)建型、結(jié)構(gòu)型和行為型   B. 對(duì)象型、結(jié)構(gòu)型和行為型

C.過程型、結(jié)構(gòu)型和行為型   D. 抽象型、接口型和實(shí)現(xiàn)型

2. 對(duì)以下開閉原則的描述錯(cuò)誤的是()

A.開閉原則與“對(duì)可變性的封裝原則”沒有相似性

B.找到個(gè)系統(tǒng)的可變?cè)兀瑢⑺庋b起來,叫開閉原則

C.對(duì)修改關(guān)閉,是其原則之一

D.從抽象層導(dǎo)出一個(gè)或多個(gè)新具體類可以改變系統(tǒng)的行為,是其原則之一

3. “不要和陌生人說話”是()原則的通俗表述。

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. 以下( )用來描述建造者( Builder )。

A. 定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類

B. 將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示

C. 保證一個(gè)類僅有一個(gè)實(shí)例,并提供→個(gè)訪問它的全周訪問點(diǎn)

D. 運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象

7. 以下( )用來描述工廠方法(Factory Method)模式。

A. 提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無須指定它們具體的類

B. 表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作。它使用戶可以在不改變各元素的類的前提下定義作用于這些元素的新操作

C. 定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類。該模式使一個(gè)類的實(shí)例化延遲到其子類

D. 定義一系列的算法,把它們一個(gè)個(gè)封裝起來,并且使它們可相互替換。本模式使得算法可獨(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. 下面不屬于創(chuàng)建型模式的有( )。

A. 抽象工廠模式(Abstract Factory)  B. 適配器模式 (Adapter)

C. 工廠方法模式(Factory Method)    D.單例模式(Singleton)

11. 定義一系列的算法,把它們一個(gè)個(gè)封裝起來,并且使它們可相互替換。這句話是對(duì)哪種模式的描述( )。

A.觀察者模式(Observer)     B.橋接模式(Bridge)

C.適配器模式(Adapter)      D.策略模式(Strategy)

12. 若系統(tǒng)中的某子模塊需要為其他模塊( )提供訪問不同數(shù)據(jù)庫(kù)系統(tǒng)的功能,這些數(shù)據(jù) 庫(kù)系統(tǒng)提供的訪問接口有一定的差異,但訪問過程卻都是相同的,例如,先連接數(shù)據(jù)庫(kù),在打開數(shù)據(jù)庫(kù),最后對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢,設(shè)計(jì)模式可抽象出相同的數(shù)據(jù)庫(kù)訪問過程。

A. 外觀      B. 裝飾      C.單間         D.模板方法

13. Decorator(裝飾)模式的意圖是:( )。

A. 定義一系列的算法,把它們一個(gè)個(gè)的封裝起來,并且使它們可相互替換。

B. 為一個(gè)對(duì)象動(dòng)態(tài)連接附加的職責(zé)。

C. 你希望只擁有一個(gè)對(duì)象,但不用全局對(duì)象來控制對(duì)象的實(shí)例化。

D. 在對(duì)象之間定義一種一對(duì)多的依賴關(guān)系,這樣當(dāng)一個(gè)對(duì)象的狀態(tài)改變時(shí),所有依賴于它的對(duì)象都將得到通知并自動(dòng)更新。

14. Singleton模式適用于( )。

A. 當(dāng)類有多個(gè)實(shí)例而且客戶可以從一個(gè)眾所周知訪問點(diǎn)訪問它時(shí)。

B. 當(dāng)這個(gè)唯一實(shí)例應(yīng)該是通過子類化可擴(kuò)展的,并且客戶應(yīng)該無需更改代碼就能使用一個(gè)擴(kuò)展的實(shí)例時(shí)。

C. 當(dāng)構(gòu)造過程必須允許被構(gòu)造的對(duì)象有不同的表示時(shí)。

D. 生成一批對(duì)象時(shí)。

15. 下列模式中,屬于行為模式的是( )。

A. 工廠模式   B. 適配器    C. 觀察者      D.以上都是

16. 關(guān)于工廠方法,以下敘述不正確的是(  )。

A. Factory Method是一個(gè)用于幫助分配創(chuàng)建的責(zé)任的模式。

B. Factory Method模式和Abstract Factory模式總是配合使用。

C. Factory Method適用于將對(duì)象實(shí)例化的規(guī)則推遲到某個(gè)派生類的情形。

D. Factory Method是屬于創(chuàng)建型模式。

17. 以下意圖( )可用來描述解釋器(Interpreter)。

A. 將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立變化

B. 給定一個(gè)語言, 定義它的文法的一種表示,并定義一個(gè)解釋器,這個(gè)解釋器使用該表示來解釋語言中的句子

C. 將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示

D. 為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問

18. 在觀察者模式中,表述錯(cuò)誤的是( )。

A. 人觀察者角色的更新是被動(dòng)的

B. 被觀察者可以通知觀察者進(jìn)行更新

C. 觀察者可以改變被觀察者的狀態(tài),再由被觀察者通知所有觀祟者依據(jù)被觀察者的狀態(tài)掛行D. 以上表述全部錯(cuò)誤

19. 以下意圖( )是用來描述組合(Composite)。

A. 為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問

B. 運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象

C. 將對(duì)象組合成樹形結(jié)構(gòu)以表示“部分”整體”的層次結(jié)構(gòu)

D. 將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示

20. 設(shè)計(jì)模式具有的優(yōu)點(diǎn)()。

A. 適應(yīng)需求變化                  B. 程序易于理解

C.減少開發(fā)過程中的代碼開發(fā)工作量 D. 簡(jiǎn)化軟件系統(tǒng)的設(shè)計(jì)

二、多選題(共10分,每題2分)

1. 以下是模式的基本要素的是(     )。

A. 名稱  B. 意圖  C. 解決方案  D. 參與者和協(xié)作者

2. 當(dāng)應(yīng)用工廠方法( Factory Method )模式時(shí)要考慮(      )。

A. 主要有兩種不同的情況         B. 參數(shù)化工廠方法

C. 特定語言的變化和問題         D. 使用模板以避免創(chuàng)建子類

3. 以下屬于結(jié)構(gòu)型模式的是(    )。

A. 代理(Proxy) 模式         B. 合成(Composite)模式

C. 命令(Command)模式        D.觀察者(Observer)模式

4. 裝飾( Decorator )模式的兩個(gè)主要缺點(diǎn)是(   )。

A. 比靜態(tài)繼承更靈活   B.避免在層次結(jié)構(gòu)高層的類有太多的特征

C. 有許多小對(duì)象,很容易對(duì)它們進(jìn)行定制,但是很難學(xué)習(xí)這些系統(tǒng),排錯(cuò)也很困難

D. 裝飾與它的組成不一樣,裝飾是一個(gè)透明的包裝

5.  中介者模式有以下(    )優(yōu)點(diǎn)。

A. 簡(jiǎn)化了對(duì)象之間的交互        B. 簡(jiǎn)化了同事類的設(shè)計(jì)和實(shí)現(xiàn)

C. 封裝了轉(zhuǎn)換規(guī)則              D. 減少了子類生成

三、判斷題(共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ì)模式可分為過程型、創(chuàng)建型和結(jié)構(gòu)型。(    )

7. 對(duì)觀察者模式,觸發(fā)事件的對(duì)象——Subject對(duì)象不需要知道觀察事件的所有對(duì)象。(    )

8. 通過在問題領(lǐng)域中使用模式,可以用一種不同的方式來看待問題。(   )

9. Strategy模式可以用不同的方式調(diào)用所有的算法。(    )

10. 當(dāng)依賴關(guān)系固定(或幾乎固定)時(shí),加入一個(gè)Observer(觀察者)模式可能只會(huì)增加復(fù)雜性。(    )

四、名詞解釋(共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)要說明。








3. 說明訪問者模式的定義與主要優(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ā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)畫出該程序的類圖。







作業(yè)咨詢 論文咨詢
微信客服掃一掃

回到頂部