




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGE7課程名稱:軟件設(shè)計(jì)模式X東北大學(xué)繼續(xù)教育學(xué)院軟件設(shè)計(jì)模式X試卷(作業(yè)考核線上2)B卷(共7頁(yè))一、單選題(共40分,每題2分)1.常用的基本設(shè)計(jì)模式可分為(A)A.創(chuàng)建型、結(jié)構(gòu)型和行為型B.對(duì)象型、結(jié)構(gòu)型和行為型C.過(guò)程型、結(jié)構(gòu)型和行為型D.抽象型、接口型和實(shí)現(xiàn)型2.對(duì)以下開(kāi)閉原則的描述錯(cuò)誤的是(A)A.開(kāi)閉原則與“對(duì)可變性的封裝原則”沒(méi)有相似性B.找到個(gè)系統(tǒng)的可變?cè)?,將它封裝起來(lái),叫開(kāi)閉原則C.對(duì)修改關(guān)閉,是其原則之一D.從抽象層導(dǎo)出一個(gè)或多個(gè)新具體類可以改變系統(tǒng)的行為,是其原則之一3.“不要和陌生人說(shuō)話”是(D)原則的通俗表述。A.接口隔離B.里氏替換C.依賴倒置D.迪米特4.當(dāng)創(chuàng)建一個(gè)具體的對(duì)象而又不希望指定具體的類時(shí),可以使用(D)A.結(jié)構(gòu)型B.創(chuàng)建型C.行為型D.以上都可以5.以下(C)是利用一個(gè)對(duì)象,快速地生成一批對(duì)象。A.抽象工廠(AbstractFactory)模式B.原型(Prototype)模式C.合成(Composite)模式D.橋接(Bridge)模式6.以下(B)用來(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.以下(C)用來(lái)描述工廠方法(FactoryMethod)模式。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ì)象適配器模式是(A)原則的典型應(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)于模式適用性,以下(D)不適合使用Flyweight(享元)模式。A.一個(gè)應(yīng)用程序使用了大量的對(duì)象B.完全由于使用大量的對(duì)象,造成很大的存儲(chǔ)開(kāi)銷C.對(duì)象的大多數(shù)狀態(tài)都可變?yōu)橥獠繝顟B(tài)D.用戶想使用一個(gè)已經(jīng)存在的類,而它的接口不符合用戶的需求10.下面不屬于創(chuàng)建型模式的有(B)。A.抽象工廠模式(AbstractFactory)B.適配器模式(Adapter)C.工廠方法模式(FactoryMethod)D.單例模式(Singleton)11.定義一系列的算法,把它們一個(gè)個(gè)封裝起來(lái),并且使它們可相互替換。這句話是對(duì)哪種模式的描述(D)。A.觀察者模式(Observer)B.橋接模式(Bridge)C.適配器模式(Adapter)D.策略模式(Strategy)12.若系統(tǒng)中的某子模塊需要為其他模塊(B)提供訪問(wèn)不同數(shù)據(jù)庫(kù)系統(tǒng)的功能,這些數(shù)據(jù)庫(kù)系統(tǒng)提供的訪問(wèn)接口有一定的差異,但訪問(wèn)過(guò)程卻都是相同的,例如,先連接數(shù)據(jù)庫(kù),在打開(kāi)數(shù)據(jù)庫(kù),最后對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢,設(shè)計(jì)模式可抽象出相同的數(shù)據(jù)庫(kù)訪問(wèn)過(guò)程。A.外觀B.裝飾C.單間D.模板方法13.Decorator(裝飾)模式的意圖是:(B)。A.定義一系列的算法,把它們一個(gè)個(gè)的封裝起來(lái),并且使它們可相互替換。B.為一個(gè)對(duì)象動(dòng)態(tài)連接附加的職責(zé)。C.你希望只擁有一個(gè)對(duì)象,但不用全局對(duì)象來(lái)控制對(duì)象的實(shí)例化。D.在對(duì)象之間定義一種一對(duì)多的依賴關(guān)系,這樣當(dāng)一個(gè)對(duì)象的狀態(tài)改變時(shí),所有依賴于它的對(duì)象都將得到通知并自動(dòng)更新。14.Singleton模式適用于(B)。A.當(dāng)類有多個(gè)實(shí)例而且客戶可以從一個(gè)眾所周知訪問(wèn)點(diǎn)訪問(wèn)它時(shí)。B.當(dāng)這個(gè)唯一實(shí)例應(yīng)該是通過(guò)子類化可擴(kuò)展的,并且客戶應(yīng)該無(wú)需更改代碼就能使用一個(gè)擴(kuò)展的實(shí)例時(shí)。C.當(dāng)構(gòu)造過(guò)程必須允許被構(gòu)造的對(duì)象有不同的表示時(shí)。D.生成一批對(duì)象時(shí)。15.下列模式中,屬于行為模式的是(C)。A.工廠模式B.適配器C.觀察者D.以上都是16.關(guān)于工廠方法,以下敘述不正確的是(C)。A.FactoryMethod是一個(gè)用于幫助分配創(chuàng)建的責(zé)任的模式。B.FactoryMethod模式和AbstractFactory模式總是配合使用。C.FactoryMethod適用于將對(duì)象實(shí)例化的規(guī)則推遲到某個(gè)派生類的情形。D.FactoryMethod是屬于創(chuàng)建型模式。17.以下意圖(B)可用來(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.在觀察者模式中,表述錯(cuò)誤的是(C)。A.人觀察者角色的更新是被動(dòng)的B.被觀察者可以通知觀察者進(jìn)行更新C.觀察者可以改變被觀察者的狀態(tài),再由被觀察者通知所有觀祟者依據(jù)被觀察者的狀態(tài)掛行D.以上表述全部錯(cuò)誤19.以下意圖(C)是用來(lái)描述組合(Composite)。A.為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)B.運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象C.將對(duì)象組合成樹(shù)形結(jié)構(gòu)以表示“部分”整體”的層次結(jié)構(gòu)D.將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示20.設(shè)計(jì)模式具有的優(yōu)點(diǎn)(A)。A.適應(yīng)需求變化B.程序易于理解C.減少開(kāi)發(fā)過(guò)程中的代碼開(kāi)發(fā)工作量D.簡(jiǎn)化軟件系統(tǒng)的設(shè)計(jì)二、多選題(共10分,每題2分)1.以下是模式的基本要素的是(ABCD)。A.名稱B.意圖C.解決方案D.參與者和協(xié)作者2.當(dāng)應(yīng)用工廠方法(FactoryMethod)模式時(shí)要考慮(ABCD)。A.主要有兩種不同的情況B.參數(shù)化工廠方法C.特定語(yǔ)言的變化和問(wèn)題D.使用模板以避免創(chuàng)建子類3.以下屬于結(jié)構(gòu)型模式的是(AB)。A.代理(Proxy)模式B.合成(Composite)模式C.命令(Command)模式D.觀察者(Observer)模式4.裝飾(Decorator)模式的兩個(gè)主要缺點(diǎn)是(CD)。A.比靜態(tài)繼承更靈活B.避免在層次結(jié)構(gòu)高層的類有太多的特征C.有許多小對(duì)象,很容易對(duì)它們進(jìn)行定制,但是很難學(xué)習(xí)這些系統(tǒng),排錯(cuò)也很困難D.裝飾與它的組成不一樣,裝飾是一個(gè)透明的包裝5.中介者模式有以下(ABD)優(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ò)展。(T)2.抽象工廠模式提供了一系列相關(guān)或相互依賴對(duì)象的接口且必須指定他們具體的類。(F)3.對(duì)象適配器模式是依賴倒轉(zhuǎn)原則的典型應(yīng)用。(F)4.Open-Close原則的含義是一個(gè)軟件實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉。(T)5.Singleton(單例)模式屬于結(jié)構(gòu)性模式。(F)6.常用的設(shè)計(jì)模式可分為過(guò)程型、創(chuàng)建型和結(jié)構(gòu)型。(F)7.對(duì)觀察者模式,觸發(fā)事件的對(duì)象——Subject對(duì)象不需要知道觀察事件的所有對(duì)象。(T)8.通過(guò)在問(wèn)題領(lǐng)域中使用模式,可以用一種不同的方式來(lái)看待問(wèn)題。(T)9.Strategy模式可以用不同的方式調(diào)用所有的算法。(F)10.當(dāng)依賴關(guān)系固定(或幾乎固定)時(shí),加入一個(gè)Observer(觀察者)模式可能只會(huì)增加復(fù)雜性。(T)四、名詞解釋(共15分,每題3分)1.設(shè)計(jì)模式答:是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。2.開(kāi)閉原則答:一個(gè)軟件實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉,即在不修改源代碼的基礎(chǔ)上擴(kuò)展一個(gè)系統(tǒng)的行為。3.單一職責(zé)原則答:一個(gè)對(duì)象應(yīng)該只包含單一的職責(zé),并且該職責(zé)被完整地封裝在一個(gè)類中。4.依賴關(guān)系答:依賴關(guān)系是一種使用關(guān)系,它是對(duì)象之間相合度最弱的一種關(guān)聯(lián)方式,是臨時(shí)性的關(guān)聯(lián)。5.組合關(guān)系答:組合關(guān)系也是關(guān)聯(lián)關(guān)系的一種,也表示類之間的整體與部分的關(guān)系,但它是一種更強(qiáng)烈的聚合關(guān)系,是contains-a關(guān)系。在組合關(guān)系中,整體對(duì)象可以控制部分對(duì)象的生命周期,一旦整體對(duì)象不存在,部分對(duì)象也將不存在,部分對(duì)象不能脫離整體對(duì)象而存在。五、簡(jiǎn)答題(共15分,每題5分)1.設(shè)計(jì)模式一般有哪幾個(gè)基本要素?設(shè)計(jì)模式一般有如下幾個(gè)基本要素:模式名稱、問(wèn)題、目的、解決方案、效果、實(shí)例代碼和相關(guān)設(shè)計(jì)模式,其中的關(guān)鍵元素包括模式名稱、問(wèn)題、解決方案和效果。2.創(chuàng)建型模式分包括哪幾種設(shè)計(jì)模式,各是什么并簡(jiǎn)要說(shuō)明。⑴單例(Singleton)模式:某個(gè)類只能生成一個(gè)實(shí)例,該類提供了一個(gè)全局訪問(wèn)點(diǎn)供外部獲取該實(shí)例,其拓展是有限多例模式。⑵原型(Prototype)模式:將一個(gè)對(duì)象作為原型,通過(guò)對(duì)其進(jìn)行復(fù)制而克隆出多個(gè)和原型類似的新實(shí)例。⑶工廠方法(FactoryMethod)模式:定義一個(gè)用于創(chuàng)建產(chǎn)品的接口,由子類決定生產(chǎn)什么產(chǎn)品。⑷抽象工廠(AbstractFactory)模式:提供一個(gè)創(chuàng)建產(chǎn)品族的接口,其每個(gè)子類可以生產(chǎn)一系列相關(guān)的產(chǎn)品。⑸建造者(Builder)模式:將一個(gè)復(fù)雜對(duì)象分解成多個(gè)相對(duì)簡(jiǎn)單的部分,然后根據(jù)不同需要分別創(chuàng)建它們,最后構(gòu)建成該復(fù)雜對(duì)象。說(shuō)明訪問(wèn)者模式的定義與主要優(yōu)缺點(diǎn)。定義:封裝一些作用于某種數(shù)據(jù)結(jié)構(gòu)中的各元素的操作,它可以在不改變這個(gè)數(shù)據(jù)結(jié)構(gòu)的前提下定義作用于這些元素的新的操作。優(yōu)點(diǎn):1.擴(kuò)展性好。在不修改對(duì)象結(jié)構(gòu)中的元素的情況下,為對(duì)象結(jié)構(gòu)中的元素添加新的功能。2.復(fù)用性好。通過(guò)訪問(wèn)者來(lái)定義整個(gè)對(duì)象結(jié)構(gòu)通用的功能,從而提高復(fù)用程度。3.分離無(wú)關(guān)行為。通過(guò)訪問(wèn)者來(lái)分離無(wú)關(guān)的行為,把相關(guān)的行為封裝在一起,構(gòu)成一個(gè)訪問(wèn)者,這樣每一個(gè)訪問(wèn)者的功能都比較單一。缺點(diǎn):1.對(duì)象結(jié)構(gòu)變化很困難。在訪問(wèn)者模式中,每增加一個(gè)新的元素類,都要在每一個(gè)具體訪問(wèn)者類中增加相應(yīng)的具體操作,這違背了“開(kāi)閉原則”。2.違反了依賴倒置原則。訪問(wèn)者模式依賴了具體類,而沒(méi)有依賴抽象類。六、綜合題(共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(intnumber);而人民幣匯率(RMBrate)類是具體目標(biāo),它實(shí)現(xiàn)了父類的change(intnumber)方法,即當(dāng)人民幣匯率發(fā)生改變時(shí)通過(guò)相關(guān)公司;公司(Company)類是抽象觀察者,它定義了一個(gè)有關(guān)匯率反應(yīng)的抽象方法respons巳(intnumber);進(jìn)口公司(ImportCompany)類和出口公司(ExportCompany)類是具體觀察者類,它們實(shí)現(xiàn)了父類的response(intnumber)方法,即當(dāng)它們接收到匯率發(fā)生改變的通知時(shí)作為相應(yīng)的反應(yīng)。請(qǐng)畫出該程序的類圖。訂閱者及具體訂閱者packageobserver;/***抽象觀察者:公司*@authorchenzufeng*@date2021-2-8*/publicinterfaceCompany{/***對(duì)匯率的反應(yīng)*@paramnumber匯率*/voidresponse(intnumber);}出口公司:packageobserver;publicclassExportCompanyimplementsCompany{@Overridepublicvoidresponse(intnumber){if(number>0){System.out.println("人民幣匯率升值"+number+"個(gè)基點(diǎn),降低了出口產(chǎn)品收入,降低了出口公司的銷售利潤(rùn)率。");}elseif(number<0){System.out.println("人民幣匯率貶值"+(-number)+"個(gè)基點(diǎn),提升了出口產(chǎn)品收入,提升了出口公司的銷售利潤(rùn)率。");}}}進(jìn)口公司:packageobserver;publicclassImportCompanyimplementsCompany{@Overridepublicvoidresponse(intnumber){if(number>0){System.out.println("人民幣匯率升值"+number+"個(gè)基點(diǎn),降低了進(jìn)口產(chǎn)品成本,提升了進(jìn)口公司利潤(rùn)率。");}elseif(number<0){System.out.println("人民幣匯率貶值"+(-number)+"個(gè)基點(diǎn),提升了進(jìn)口產(chǎn)品成本,降低了進(jìn)口公司利潤(rùn)率。");}}}發(fā)布者packageobserver;importjava.util.ArrayList;importjava.util.List;/***抽象目標(biāo):匯率*/abstractclassRate{protectedList<Company>companyList=newArrayList<>();/***增加觀察者*@paramcompany公司*/publicvoidaddCompany(Companycompany){companyList.add(company);}/***刪除觀察者*@paramcompany公司*/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年跨年晚會(huì)策劃方案
- 2025年秋季學(xué)校德育工作方案
- 羽毛球活動(dòng)方案創(chuàng)意范本2025年
- 2025年國(guó)慶節(jié)主題方案參考
- 2025年系統(tǒng)架構(gòu)師知識(shí)產(chǎn)權(quán)與標(biāo)準(zhǔn)化備考題庫(kù)
- 2025年生態(tài)棉十孔被項(xiàng)目可行性研究報(bào)告
- 2025年玻璃鋼復(fù)合罐項(xiàng)目可行性研究報(bào)告
- 2025年玉米膨化粉項(xiàng)目可行性研究報(bào)告
- 天津現(xiàn)代職業(yè)技術(shù)學(xué)院《現(xiàn)代測(cè)試技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南省祁陽(yáng)縣2024-2025學(xué)年高三5月學(xué)情調(diào)查數(shù)學(xué)試題含解析
- 臨榆炸雞腿加盟合同范本
- 工程造價(jià)咨詢事務(wù)所有限公司操作規(guī)程和基本管理制度
- DBJ15 31-2016建筑地基基礎(chǔ)設(shè)計(jì)規(guī)范(廣東省標(biāo)準(zhǔn))
- 保險(xiǎn)信息服務(wù)合同范本
- 老年人康樂(lè)活動(dòng)-老年節(jié)慶活動(dòng)組織策劃
- 預(yù)防接種服務(wù)提質(zhì)行動(dòng)方案2-4-10
- 綠化苗木組織供應(yīng)及售后服務(wù)方案
- 合用變壓器協(xié)議
- 護(hù)理人員崗位績(jī)效考核評(píng)價(jià)標(biāo)準(zhǔn)
- 2024年鄭州軌道工程職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)學(xué)生專用
- 2024年山西省太原市中考二模地理試卷
評(píng)論
0/150
提交評(píng)論