[14_15]12班《Java設(shè)計(jì)模式》期末A卷_第1頁
[14_15]12班《Java設(shè)計(jì)模式》期末A卷_第2頁
[14_15]12班《Java設(shè)計(jì)模式》期末A卷_第3頁
[14_15]12班《Java設(shè)計(jì)模式》期末A卷_第4頁
[14_15]12班《Java設(shè)計(jì)模式》期末A卷_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Java設(shè)計(jì)模式期末考試試卷(A卷)第 頁共9頁Java設(shè)計(jì)模式期末考試試卷(A卷)第 頁共9頁2014-2015學(xué)年第二學(xué)期信息科學(xué)與工程學(xué)院(Java設(shè)計(jì)模式期末考試試卷(A卷)年級(jí):12_專業(yè):計(jì)算機(jī)科學(xué)技術(shù)班級(jí):學(xué)號(hào):姓名:題號(hào)匚四7l總分簽名得分注:1、共120分鐘,總分100分;2、此試卷適川班級(jí):計(jì)算機(jī)本科專業(yè)。得分閱卷教師一、單選擇題:(30分,每小題2分)1關(guān)于模式適用性,在以下情況適合使用COMPOSITE(組合)模式?(C)你想使用一個(gè)已經(jīng)存在的類,而它的接口不符合你的需求。當(dāng)一個(gè)類的實(shí)例只能有幾個(gè)不同狀態(tài)組合中的一種時(shí)。你想表示對(duì)象的部分-整體層次結(jié)構(gòu)。一個(gè)對(duì)象的行為取

2、決于它的狀態(tài),并且它必須在運(yùn)行時(shí)刻根據(jù)狀態(tài)改變它的行為。Java的異常處理機(jī)制可理解為哪一種行為模式(C)觀察者(Observer)模式迭代器(Iterator)模式職責(zé)鏈(ChainofResponsibility)模式策略(Strategy)模式當(dāng)我們想創(chuàng)建一個(gè)具休的對(duì)象而又不希望指定具體的類時(shí),可以使用(B)模式。A.結(jié)構(gòu)型B.創(chuàng)建型C.行為型D.以上都可以4.以下意圖哪個(gè)是用來描述BUILDER(建造者)?(B)定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問

3、點(diǎn)。運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象。5設(shè)計(jì)模式的兩大主題是(D)系統(tǒng)的維護(hù)與開發(fā)B.對(duì)象組合與類的繼承C.系統(tǒng)架構(gòu)與系統(tǒng)開發(fā)D.系統(tǒng)復(fù)用與系統(tǒng)擴(kuò)展要依賴于抽象,不耍依賴于具體,即針對(duì)接口編程,不要針對(duì)實(shí)現(xiàn)編程,是(D)的表述。開-閉原則B.接口隔離原則C.里氏代換原則D.依賴倒轉(zhuǎn)原則以下意圖哪個(gè)是用來描述BRIDGE(橋接)?(B)提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無需指定它們具體的類。將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)。以下意圖哪個(gè)是用來描述AB

4、STRACTFACTORY(抽象工廠)?(A)提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無需指定它們具體的類。定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類。將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作。Open-Close原則的含義是一個(gè)軟件實(shí)體(A)應(yīng)當(dāng)對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉.應(yīng)當(dāng)對(duì)修改開放,對(duì)擴(kuò)展關(guān)閉應(yīng)當(dāng)對(duì)繼承開放,對(duì)修改關(guān)閉以上都不對(duì)對(duì)于違反里式代換原則的兩個(gè)類,可以采用的候選解決方案錯(cuò)誤的是:(D)創(chuàng)建一個(gè)新的抽象類C,作為兩個(gè)具體類的超類,將A和E共同的行為移動(dòng)到C中,從而解決A和B行為不完全一致的問題。將B到A的繼承關(guān)系改組成委派

5、關(guān)系。區(qū)分是TS曠還是”Has_aJ如果是“Isa”,可以使用繼承關(guān)系,如果是Has一曠應(yīng)該改成委派關(guān)系以上方案錯(cuò)誤11以下意圖那個(gè)是用來描述ADAPTER(適配器)?(A)將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口,本模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類。表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作,它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作。將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使你可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化;對(duì)請(qǐng)求排隊(duì)或記錄請(qǐng)求H志,以及支持可撤消的操作。對(duì)于依賴倒轉(zhuǎn)的表述錯(cuò)誤的是(E)依賴于抽象而

6、不依賴于具體,也就是針對(duì)接口編程。依賴倒轉(zhuǎn)的接口并非語法意義上的接口,而是,一個(gè)類對(duì)其他對(duì)象進(jìn)行調(diào)用時(shí),所知道的方法集合。從選項(xiàng)B的角度論述,一個(gè)對(duì)象可以有多個(gè)接口。實(shí)現(xiàn)了同一接口的對(duì)象,可以在運(yùn)行期間,順利地進(jìn)行替換。而且不必知道所示用的對(duì)象是哪個(gè)實(shí)現(xiàn)類的實(shí)例。此題沒有正確答案。以下關(guān)于創(chuàng)建型模式說法正確的是(A)創(chuàng)建型模式關(guān)注的是對(duì)象的創(chuàng)建創(chuàng)建型模式關(guān)注的是功能的實(shí)現(xiàn)創(chuàng)建型模式關(guān)注的是組織類和對(duì)象的常用方法創(chuàng)建型模式關(guān)注的是對(duì)象間的協(xié)作14.關(guān)于模式適用性,在以下情況不適合使用FLYWEIGHT(享元)模式?(D)一個(gè)應(yīng)用程序使用了大量的對(duì)象。完全由丁使用大量的對(duì)象,造成很大的存儲(chǔ)開銷。對(duì)

7、象的大多數(shù)狀態(tài)都可變?yōu)橥獠繝顟B(tài)。你想使用一個(gè)已經(jīng)存在的類,而它的接口不符合你的需求。15.對(duì)象適配器模式是(A)原則的典型應(yīng)用。合成聚合復(fù)用原則B.里式代換原則C.依賴倒轉(zhuǎn)原則D.迪米特法則閱卷教師二、多選擇題:(20分,每小題2分)面向?qū)ο笙到y(tǒng)中功能復(fù)用的最常用技術(shù)是(A、B)A.類繼承B.對(duì)象組合C.使用抽象類D.使用實(shí)現(xiàn)類以下哪些問題通過應(yīng)用設(shè)計(jì)模式能夠解決(A、D)oA.指定對(duì)象的接口B.排除軟件BUGC.確定軟件的功能都正確實(shí)現(xiàn)D.設(shè)計(jì)應(yīng)支持變化Bridge模式有以下哪些優(yōu)點(diǎn)?(A、B、D)A.分離接口及其實(shí)現(xiàn)部分B.提高可擴(kuò)充性C.改變值以指定新對(duì)象D.實(shí)現(xiàn)細(xì)節(jié)對(duì)客戶透明以下關(guān)于結(jié)

8、構(gòu)型模式說法正確的是(A、C、D)結(jié)構(gòu)型模式可以在不破壞類封裝性的基礎(chǔ)上,實(shí)現(xiàn)新的功能。結(jié)構(gòu)型模式主耍用于創(chuàng)建一組對(duì)象。結(jié)構(gòu)型模式可以創(chuàng)建一組類的統(tǒng)一訪問接口。結(jié)構(gòu)型模式可以在不破壞類封裝性的基礎(chǔ)上,使得類可以同不曾佔(zhàn)計(jì)到的系統(tǒng)進(jìn)行交互。在不破壞類封裝性的基礎(chǔ)上,使得類可以同不曾佔(zhàn)計(jì)到的系統(tǒng)進(jìn)行交互。主耍體現(xiàn)在(A,D)A.適配器(Adapte)模式B.合成(Composite)模式C.原型(Prototype)模式D.橋接(Bridge)模式以下意圖哪個(gè)是用來描述FACTORYMETHOD(工廠方法)?(C)提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無需指定它們具體的類。表示一個(gè)作用于某

9、對(duì)象結(jié)構(gòu)中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作。定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類。該模式使一個(gè)類的實(shí)例化延遲到其子類。定義一系列的算法,把它們一個(gè)個(gè)封裝起來,并且使它們可相互替換。本模式使得算法可獨(dú)立于使用它的客戶而變化。7.使用Prototype原型模式時(shí)以下屬丁要考慮的問題有那些?(A、B、C)A.使用一個(gè)原型管理器B.實(shí)現(xiàn)克隆操作C.初始化克隆對(duì)象D.用類動(dòng)態(tài)配置應(yīng)用8.Singleton模式適用與(A、B)當(dāng)類只能有一個(gè)實(shí)例而且客戶可以從一個(gè)眾所周知的訪問點(diǎn)訪問它時(shí)。當(dāng)這個(gè)唯一實(shí)例應(yīng)該自行創(chuàng)建并向系統(tǒng)提供時(shí)。當(dāng)構(gòu)造過程必須允

10、許被構(gòu)造的對(duì)象有不同的表示時(shí)。生成一批對(duì)象。當(dāng)應(yīng)JljFactoryMethod模式時(shí)要考慮下面哪些問題?(A,B,C,D)A.主耍有兩種不同的情況B.參數(shù)化工廠方法C.特定語言的變化和問題D.使用模板以避免創(chuàng)建子類10.以下有關(guān)ABSTRACTFACTORY(抽象工廠)這種模式的一些優(yōu)點(diǎn)和缺點(diǎn)描述正確的是?(A、B、C、D)A.它分離了具休的類。C.它有利于產(chǎn)品的一致性。B.它使得易丁交換產(chǎn)品系列。難以支持新種類的產(chǎn)品三得分閱卷教師三、填空題:(20分,每空2分)(行為型模式)主要用于描述對(duì)類或?qū)ο笤鯓咏换ズ驮鯓臃峙渎氊?zé)。組合模式屬于(結(jié)構(gòu)型)模式、原型模式屬于(創(chuàng)建型)模式。適配器模式,分

11、為類適配器和對(duì)象適配器兩種實(shí)現(xiàn)。其中類適配器采川的是(繼承)關(guān)系,而對(duì)象適配器采用的是(組合聚合)關(guān)系。(依賴倒轉(zhuǎn))原則耍求抽象不應(yīng)該依賴丁細(xì)節(jié),細(xì)節(jié)應(yīng)當(dāng)依賴于抽象。門面模式是(迪米特)法則的典型運(yùn)用。創(chuàng)建型模式的根本意圖是耍把,對(duì)象的創(chuàng)建)和(使川)的帝任進(jìn)行分離,從而降低系統(tǒng)的(耦合度)。四得分閱卷教師四、程序分析題:(10分)廚具工廠WareFactoiy能生產(chǎn)和管理飯碗bowl和杯子cup等廚具Kitchenware,現(xiàn)已畫好了以下類圖,按要求完成以下任務(wù)。要求:1)說明選擇了什么設(shè)計(jì)模式?2)寫出其程序代碼。完成該步得3分完成該步得7分解:1)本題使用了享元模式。2)其參考程序代碼如

12、下所示:importjava.util.*;publicclassWareFactoiyprivateAiiayListWares=newAnayListO;privateinttotalNum=0;publicWareFactoiyO_KitchenWarendl=newbowl(n飯碗J;Wares.add(ndl);KitchenWarend2=newcup(n杯子”);Wares.add(nd2);publicKitchenWaregetKitchenWare(Stringtype)_if(type.equalsIgnoreCase(H飯碗”)totalNum-H-;return(Ki

13、tchenWare)Wares.get(O);elseif(type.equalsIgnoreCase(n杯子”)totalNum-H-;return(KitchenWare)Wares.get(1);elsereturnnull;publicintgetTotalWare()returnWares.size();publicintgettotalNum()returntotalNum;publicinterfaceKitchenWarepublicStringgetType();publicvoiduse();publicclassbowlimplementsKitchenWarepriva

14、teStringtype;publicbowl(Stringtype)this.type=type;publicStringgetType()retumthis.type;publicvoiduse()Systeni.out.printlnC,使用的廚具是:”+this.type);publicclasscupimplementsKitchenWareprivateStringtype;publiccup(Stringtype)this.type=type;publicStringgetType()retumthis.type;publicvoiduse()System.out.println

15、(使用的廚具是:“+this.type);publicclassClient2010publicstaticvoidmain(Stringargs)KitchenWarekwl,kw2,kw3Jw4;WareFactoiydfiiewWareFactoiyO;kw1=df.getKitchenWare(飯碗”);kwl.iise();kw2=df.getKitchenWare(飯碗”);kw2.use();kw3=df.getKitchenWare(杯子”);kw3.use();kw4=df.getKitchenWare(杯子”);kw4.use();System.out.println(M廚

16、具種類:”+df.getTotalWare();Java設(shè)計(jì)模式期末考試試卷(A卷)第8頁共9頁Java設(shè)計(jì)模式期末考試試卷(A卷)第 頁共9頁System,out.printing生成的廚具數(shù):”+df.gettotalNum();五得分閱卷教師五、綜合設(shè)計(jì)題:(20分)假設(shè)某遠(yuǎn)程服務(wù)器提供三種功能:功能1()、功能2()、功能3()。學(xué)員如果交1000元學(xué)費(fèi)將受到“初級(jí)學(xué)校”的培訓(xùn),并獲取“初級(jí)級(jí)別”,這時(shí)通過木地代理服務(wù)器可以訪問遠(yuǎn)程服務(wù)器的“功能1()”;如果再交1000元學(xué)費(fèi)將受到“中級(jí)學(xué)校”的培訓(xùn),并獲取“中級(jí)級(jí)別”,這時(shí)通過本地代理服務(wù)器可以訪問遠(yuǎn)程服務(wù)器的“功能1()、功能2()”;如果再交1000元學(xué)費(fèi)將受到“高級(jí)學(xué)校”的培訓(xùn),并獲取“高級(jí)級(jí)別”,這時(shí)通過本地代理服務(wù)器可以訪問遠(yuǎn)程服務(wù)器的“功能1()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論