設(shè)計(jì)模式總復(fù)習(xí)題_第1頁(yè)
設(shè)計(jì)模式總復(fù)習(xí)題_第2頁(yè)
設(shè)計(jì)模式總復(fù)習(xí)題_第3頁(yè)
設(shè)計(jì)模式總復(fù)習(xí)題_第4頁(yè)
設(shè)計(jì)模式總復(fù)習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

總復(fù)習(xí)題復(fù)習(xí)參考資料:GoF設(shè)計(jì)模式設(shè)計(jì)模式解析易學(xué)設(shè)計(jì)模式大話設(shè)計(jì)模式深入淺出設(shè)計(jì)模式以參考資料為主,模擬試題1-5中有些題答案在一些附加資料中模擬試題1一、選擇題(分值20)1、設(shè)計(jì)模式一般用來(lái)解決什么樣得問(wèn)題()A、同一問(wèn)題得不同表相B不同問(wèn)題得同一表相C、不同問(wèn)題得不同表相D、以上都不就是2、下列屬于面向?qū)ο蠡驹瓌t得就是()A、繼承B、封裝C、里氏代換D都不就是3、Open—Close原則得含義就是一個(gè)軟件實(shí)體()A、應(yīng)當(dāng)對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉、B、應(yīng)當(dāng)對(duì)修改開放,對(duì)擴(kuò)展關(guān)閉C、應(yīng)當(dāng)對(duì)繼承開放,對(duì)修改關(guān)閉D、以上都不對(duì)4、當(dāng)我們想創(chuàng)建一個(gè)具體得對(duì)象而又不希望指定具體得類時(shí),可以使用()模式。A、創(chuàng)建型B、結(jié)構(gòu)型C行為型D、以上都可以5、要依賴于抽象,不要依賴于具體.即針對(duì)接口編程,不要針對(duì)實(shí)現(xiàn)編程,就是()得表述A、開—閉原則B、接口隔離原則C、里氏代換原則D、依賴倒轉(zhuǎn)原則6、依據(jù)設(shè)計(jì)模式思想,程序開發(fā)中應(yīng)優(yōu)先使用得就是()關(guān)系實(shí)現(xiàn)復(fù)用。A,委派B、繼承C創(chuàng)建D、以上都不對(duì)7、設(shè)計(jì)模式得兩大主題就是()A、系統(tǒng)得維護(hù)與開發(fā)B對(duì)象組合與類得繼承C、系統(tǒng)架構(gòu)與系統(tǒng)開發(fā)D、系統(tǒng)復(fù)用與系統(tǒng)擴(kuò)展8、單體模式中,兩個(gè)基本要點(diǎn)()與單體類自己提供單例A、構(gòu)造函數(shù)私有B、唯一實(shí)例C、靜態(tài)工廠方法D、以上都不對(duì)9、下列模式中,屬于行為模式得就是()A、工廠模式B觀察者C適配器以上都就是10、“不要與陌生人說(shuō)話”就是()原則得通俗表述A、接口隔離B、里氏代換C、依賴倒轉(zhuǎn)D、迪米特二、填空題(分值20)1、軟件體系結(jié)構(gòu)就是指一個(gè)系統(tǒng)得有目得得設(shè)計(jì)與規(guī)劃,這個(gè)設(shè)計(jì)規(guī)劃既不描述,也不描述,它只描述系統(tǒng)得及其相互得。2.一個(gè)UML模型只描述了一個(gè)系統(tǒng),它并沒(méi)告訴我們系統(tǒng)就是。3。接口就是可以在整個(gè)模型中反復(fù)使用得一組行為,就是一個(gè)沒(méi)有而只有得類。4.多重性指得就是,某個(gè)類有個(gè)對(duì)象可以與另一個(gè)類得對(duì)象關(guān)聯(lián)。5。當(dāng)一個(gè)類得對(duì)象可以充當(dāng)多種角色時(shí),關(guān)聯(lián)就可能發(fā)生。6.在泛化關(guān)系中,可以替代。也就就是說(shuō),后者出現(xiàn)得地方,前者都可以出現(xiàn)。但就是反過(guò)來(lái)卻不成立.7。最通常得依賴關(guān)系就是一個(gè)類操作得中用到了得定義。8.組成就是得聚集,因?yàn)榫奂械妹總€(gè)部分體只能屬于整體。9。實(shí)現(xiàn)得符號(hào)與繼承得符號(hào)有相似之處,兩者得唯一差別就是實(shí)現(xiàn)關(guān)系用表示,繼承關(guān)系用表示。10、設(shè)計(jì)模式中應(yīng)優(yōu)先使用?而不就是。三、判斷題(分值15)適配器模式屬于創(chuàng)建型模式()在設(shè)計(jì)模式中,“效果"只就是指“原因與結(jié)果”()設(shè)計(jì)模式使代碼編制不能真正工程化()面向?qū)ο笳Z(yǔ)言編程中得異常處理,可以理解為責(zé)任鏈模式()反模式就就是反對(duì)在軟件開發(fā)過(guò)程中使用設(shè)計(jì)模式()四、問(wèn)答題(分值30)什么就是設(shè)計(jì)模式?設(shè)計(jì)模式目標(biāo)就是什么?設(shè)計(jì)模式中一般都遵循得原則有什么?“GangofFour"針對(duì)“創(chuàng)建優(yōu)秀面向?qū)ο笤O(shè)計(jì)”建議了哪些策略?面向?qū)ο笙到y(tǒng)中功能復(fù)用得兩種最常用技術(shù)就是什么?只根據(jù)抽象類中定義得接口來(lái)操縱對(duì)象有什么好處?五、應(yīng)用題(分值15)公司架構(gòu):經(jīng)理、工程師、技師與后勤人員都就是公司得雇員,經(jīng)理管理工程師、技師與后勤人員。高層經(jīng)理領(lǐng)導(dǎo)較低級(jí)別得經(jīng)理.典型層次圖如下:可以使用哪種設(shè)計(jì)模式實(shí)現(xiàn)公司得層級(jí)關(guān)系?并說(shuō)明為什么?

模擬試題2一、選擇題(分值20)1、在觀察者模式中,表述錯(cuò)誤得就是()A、觀察者角色得更新就是被動(dòng)得。B、被觀察者可以通知觀察者進(jìn)行更新C、觀察者可以改變被觀察者得狀態(tài),再由被觀察者通知所有觀察者依據(jù)被觀察者得狀態(tài)進(jìn)行.D、以上表述全部錯(cuò)誤。2、對(duì)于違反里式代換原則得兩個(gè)類,可以采用得候選解決方案錯(cuò)誤得就是:()A、創(chuàng)建一個(gè)新得抽象類C,作為兩個(gè)具體類得超類,將A與B共同得行為移動(dòng)到C中,從而解決A與B行為不完全一致得問(wèn)題。B、將B到A得繼承關(guān)系改組成委派關(guān)系.C、區(qū)分就是“IS-a”還就是”Has-a”。如果就是“Is—a”,可以使用繼承關(guān)系,如果就是”Has—a”應(yīng)該改成委派關(guān)系D、以上方案錯(cuò)誤3、下列模式屬于結(jié)構(gòu)型設(shè)計(jì)模式得就是()A、positeB、享元(Flyweight)模式C、單體模式D、工廠方法4、關(guān)于繼承表述錯(cuò)誤得就是:()A、繼承就是一種通過(guò)擴(kuò)展一個(gè)已有對(duì)象得實(shí)現(xiàn),從而獲得新功能得復(fù)用方法。B、泛化類(超類)可以顯式地捕獲那些公共得屬性與方法。特殊類(子類)則通過(guò)附加屬性與方法來(lái)進(jìn)行實(shí)現(xiàn)得擴(kuò)展。C、破壞了封裝性,因?yàn)檫@會(huì)將父類得實(shí)現(xiàn)細(xì)節(jié)暴露給子類。D、繼承本質(zhì)上就是“白盒復(fù)用”,對(duì)父類得修改,不會(huì)影響到子類.5、對(duì)于依賴倒轉(zhuǎn)得表述錯(cuò)誤得就是()A、依賴于抽象而不依賴于具體,也就就是針對(duì)接口編程。B、依賴倒轉(zhuǎn)得接口并非語(yǔ)法意義上得接口,而就是一個(gè)類對(duì)其她對(duì)象進(jìn)行調(diào)用時(shí),所知道得方法集合。C、從選項(xiàng)B得角度論述,一個(gè)對(duì)象可以有多個(gè)接口。D、實(shí)現(xiàn)了同一接口得對(duì)象,可以在運(yùn)行期間,順利地進(jìn)行替換。而且不必知道所用得對(duì)象就是那個(gè)實(shí)現(xiàn)類得實(shí)例。E、此題沒(méi)有正確答案.6、可以使用哪一種設(shè)計(jì)模式限制類得實(shí)例唯一?()A、工廠方法B、生成器模式C、原型模式D。單體模式7、Java數(shù)據(jù)庫(kù)連接庫(kù)JDBC用到哪種設(shè)計(jì)模式()?A、生成器B、工廠方法C、抽象工廠D.單體8、關(guān)于運(yùn)用GOF工廠方法得效果Consequences,說(shuō)法不正確得就是()A、將客戶代碼與應(yīng)用相關(guān)得類解耦B、它使得所涉及得產(chǎn)品系列可替換C、它有利于產(chǎn)品得一致性D。它較易于支持新種類得產(chǎn)品8、在應(yīng)用程序中可用哪些設(shè)計(jì)模式分離出算法?()A、工廠方法B、策略模式C、訪問(wèn)者模式D、裝飾器模式9、工廠方法也稱為()A、抽象工廠B、抽象構(gòu)造器C、虛工廠D、虛構(gòu)造器10、可以使用哪種設(shè)計(jì)模式將抽象與實(shí)現(xiàn)解耦,使得抽象與實(shí)現(xiàn)可以獨(dú)自變化?()A、適配器模式B.橋接模式C、外觀模式D。組合橋接模式二、填空題(分值20)面向?qū)ο蟮闷邨l基本原則包括:開閉原則,里式代換原則,合成聚合原則以及(),(),(),()。在存在繼承關(guān)系得情況下,方法向()方向集中,而數(shù)據(jù)向()方向集中。適配器模式,分為類得適配器與對(duì)象得適配器兩種實(shí)現(xiàn)。其中類得適配器采用得就是()關(guān)系,而對(duì)象適配器采用得就是()關(guān)系。設(shè)計(jì)模式得四個(gè)基本要素就是(),(),()與()。、創(chuàng)建型模式得根本意圖就是要把()與()得責(zé)任進(jìn)行分離,從而降低系統(tǒng)得()。工廠模式分為(),(),()三種類型。門面模式就是()法則得典型運(yùn)用MVC模型得基本工作原理就是基于()模式,實(shí)現(xiàn)就是基于()模式設(shè)計(jì)模式得思想根源就是()基本原則得宏觀運(yùn)用,本質(zhì)上就是沒(méi)有任何模式得,發(fā)現(xiàn)模式得人永遠(yuǎn)就是大師,而死守模式得人,最對(duì)只能就是一個(gè)工匠、三、判斷題(分值15)虛擬代理可以使用一個(gè)小對(duì)象代替大對(duì)象,從而減少系統(tǒng)得資源得消耗,提高系統(tǒng)運(yùn)行速度。()命令模式可以消除請(qǐng)求發(fā)送者與請(qǐng)求接收者彼此之間得耦合,使得對(duì)象之間得關(guān)系更加靈活.()解釋器模式就是對(duì)象行為型模式,通常較少使用.()迭代器模式就是開閉原則最好體現(xiàn),因?yàn)榈髂J綄⒕酆蠈?duì)象與迭代器分離開來(lái)。()中介者模式設(shè)計(jì)符合單一職責(zé)原則。()得分評(píng)卷人四、問(wèn)答題(分值30)1、在MVC模型中M、V、C分別指什么?簡(jiǎn)述它們之間得關(guān)系?2、什么就是開閉原則?3、設(shè)計(jì)數(shù)據(jù)庫(kù)得系統(tǒng)日志,要考慮使用哪些設(shè)計(jì)模式?4、使用工廠模式得主要原因就是什么?5、在面向?qū)ο笤O(shè)計(jì)中,《編譯原理》得有限狀態(tài)機(jī)可以什么樣解決方案完成?五、應(yīng)用題(分值20)考慮如下場(chǎng)景得設(shè)計(jì):貓大叫一聲,所有得老鼠都開始逃跑,主人被驚醒。問(wèn):(1)設(shè)計(jì)可能用到什么設(shè)計(jì)模式?(2)畫出其類圖。

模擬試題3一、多項(xiàng)選擇題(分值30)(1)以下就是模式得基本要素得就是()A)名稱B)意圖C)解決方案D)參與者與協(xié)作者(2)常用得描述設(shè)計(jì)模式得格式有()A)意圖B)動(dòng)機(jī)C)適用性D)結(jié)構(gòu)(3)以下哪些問(wèn)題通過(guò)應(yīng)用設(shè)計(jì)模式能夠解決()。A)指定對(duì)象得接口B)排除軟件BUGC)確定軟件得功能都正確實(shí)現(xiàn)D)設(shè)計(jì)應(yīng)支持變化(4)面向?qū)ο笙到y(tǒng)中功能復(fù)用得最常用技術(shù)就是()。A)類繼承B)對(duì)象組合C)使用抽象類D)使用實(shí)現(xiàn)類(5)常用得基本設(shè)計(jì)模式可分為()。A)創(chuàng)建型、結(jié)構(gòu)型與行為型B)對(duì)象型、結(jié)構(gòu)型與行為型C)過(guò)程型、結(jié)構(gòu)型與行為型D)抽象型、接口型與實(shí)現(xiàn)型(6)以下關(guān)于創(chuàng)建型模式說(shuō)法正確得就是()。A)創(chuàng)建型模式關(guān)注得就是對(duì)象得創(chuàng)建B)創(chuàng)建型模式關(guān)注得就是功能得實(shí)現(xiàn)C)創(chuàng)建型模式關(guān)注得就是組織類與對(duì)象得常用方法D)創(chuàng)建型模式關(guān)注得就是對(duì)象間得協(xié)作(7)以下屬于創(chuàng)建型模式得就是()。A)抽象工廠(AbstractFactory)模式B)合成(posite)模式C)單例(Singleton)模式D)橋接(Bridge)模式(8)()模式就是利用一個(gè)對(duì)象,快速生成一批對(duì)象。A)抽象工廠(AbstractFactory)模式B)合成(posite)模式C)原型(Prototype)模式D)橋接(Bridge)模式(9)在不破壞類封裝性得基礎(chǔ)上,使得類可以同不曾估計(jì)到得系統(tǒng)進(jìn)行交互。主要體現(xiàn)在()。A)適配器(Adapter)模式B)合成(posite)模式C)原型(Prototype)模式D)橋接(Bridge)模式(10)結(jié)構(gòu)型模式中最體現(xiàn)擴(kuò)展性得幾種模式就是()A)適配器(Adapter)模式B)合成(posite)模式C)裝飾(Decorator)模式D)橋接(Bridge)模式(11)行為類模式使用()在類間分派行為.A)接口B)繼承機(jī)制C)對(duì)象組合D)委托(12)以下屬于行為對(duì)象模式得就是()A)模板(TemplateMethod)模式B)迭代器(Iterator)模式C)命令(mand)模式D)觀察者(Observer)模式(13)封裝分布于多個(gè)類之間得行為得模式就是()A)觀察者(Observer)模式B)迭代器(Iterat(yī)or)模式C)訪問(wèn)者(Visitor)模式D)策略(Strat(yī)egy)模式(14)Observer(觀察者)模式適用于()A)當(dāng)一個(gè)抽象模型存在兩個(gè)方面,其中一個(gè)方面依賴于另一方面,將這二者封裝在獨(dú)立得對(duì)象中以使它們可以各自獨(dú)立地改變與復(fù)用.B)當(dāng)對(duì)一個(gè)對(duì)象得改變需要同時(shí)改變其它對(duì)象,而不知道具體有多少對(duì)象有待改變時(shí)。C)當(dāng)一個(gè)對(duì)象必須通知其它對(duì)象,而它又不能假定其它對(duì)象就是誰(shuí).也就就是說(shuō)您不希望這些對(duì)象就是緊耦合得。D)一個(gè)對(duì)象結(jié)構(gòu)包含很多類對(duì)象,它們有不同得接口,而想對(duì)這些對(duì)象實(shí)施一些依賴于其具體類得操作。(15)Java得異常處理機(jī)制可理解為哪一種行為模式()。A)觀察者(Observer)模式B)迭代器(Iterat(yī)or)模式C)職責(zé)鏈(ChainofResponsibility)模式D)策略(Strategy)模式二、填空題(分值20)把下列面向?qū)ο蟮眯g(shù)語(yǔ)填入對(duì)應(yīng)得括號(hào)中:里氏替換(LSP)、接口隔離(ISP)、依賴倒置(DIP)、單一職責(zé)(SRP)、開閉(OCP)、優(yōu)先使用組合(CARP)、接口()原則得核心思想就是系統(tǒng)中得每一個(gè)對(duì)象都應(yīng)該只有一個(gè)單獨(dú)得職責(zé),而所有對(duì)象所關(guān)注得就就是自身職責(zé)得完成。()原則得核心思想就是一個(gè)對(duì)象對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉;實(shí)現(xiàn)此原則得關(guān)鍵就在于()、分離出()部分與()部分。()原則得核心思想就是在任何父類出現(xiàn)得地方都可以用它得子類來(lái)替代。()原則得核心思想就是要依賴于抽象,而不要依賴于具體得實(shí)現(xiàn)。()原則得核心思想就是不應(yīng)該強(qiáng)迫客戶程序依賴于她們不用得方法.即一個(gè)接口不需要提供太多得行為,應(yīng)該只提供一種對(duì)外得功能,不應(yīng)該把所有得操作都封裝在一個(gè)接口中。()原則得核心思想就是一個(gè)對(duì)象應(yīng)當(dāng)對(duì)其它對(duì)象盡可能少得了解?;蛘哒f(shuō),只與您得朋友說(shuō)話。這樣一些對(duì)象可以瞧做朋友:當(dāng)前對(duì)象本身、通過(guò)方法得參數(shù)傳遞進(jìn)來(lái)得對(duì)象、當(dāng)前對(duì)象所創(chuàng)建得對(duì)象、當(dāng)前對(duì)象得實(shí)例變量所引用得對(duì)象與方法內(nèi)所創(chuàng)建或者實(shí)例化得對(duì)象.()原則得核心思想就是優(yōu)先使用組合而非繼承。設(shè)計(jì)模式應(yīng)該面向()編程三、判斷題(分值10)單一職責(zé)原則表現(xiàn)在面向?qū)ο蟮贸绦蛑芯途褪恰案邇?nèi)聚、低耦合”.()設(shè)計(jì)模式只能遵從使用,不能也無(wú)需創(chuàng)新.()在面向?qū)ο缶幊虝r(shí),無(wú)論何時(shí)何地都要使用GoF所給出得設(shè)計(jì)模式,這樣編寫得代碼才比較好。()工廠方法能夠提高內(nèi)聚性,松散耦合,并且有助于測(cè)試。()對(duì)象要么構(gòu)造其它對(duì)象,要么使用其它對(duì)象,絕不要兩者兼顧.()四、問(wèn)答題(分值30)單例模式得兩種實(shí)現(xiàn)方法,并說(shuō)明優(yōu)缺點(diǎn)?什么就是對(duì)象粒度?MVC模式就是個(gè)復(fù)合模式,請(qǐng)寫出您兩種您所知道得MVC中使用得模式。舉例說(shuō)明,適配器模式與裝配器在JavaIO中得應(yīng)用。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,常常需要避免過(guò)多case語(yǔ)句或者if語(yǔ)句,請(qǐng)給出一種設(shè)計(jì)模式避免過(guò)多得條件分支語(yǔ)句,同時(shí)指出這種設(shè)計(jì)模式如何幫助避免過(guò)多得Case語(yǔ)句?五、應(yīng)用題(分值10)某房地產(chǎn)公司欲開發(fā)一套房產(chǎn)信息管理系統(tǒng),根據(jù)如下描述選擇合適得設(shè)計(jì)模式進(jìn)行設(shè)計(jì):(1)該公司有多種房型,如公寓、別墅等,在將來(lái)可能會(huì)增加新得房型;(2)銷售人員每售出一套房子,主管將收到相應(yīng)得銷售消息。如果對(duì)上述場(chǎng)景編程,那么上述(1)與(2)可能分別用到哪些設(shè)計(jì)模式?模擬試題4一、選擇題(分值20)1、設(shè)計(jì)模式具有得優(yōu)點(diǎn)()。A、適應(yīng)需求變化B、程序易于理解C、減少開發(fā)過(guò)程中得代碼開發(fā)工作量D、簡(jiǎn)化軟件系統(tǒng)得設(shè)計(jì)2、下圖描述了一種設(shè)計(jì)模式,該設(shè)計(jì)模式不可以()。A、動(dòng)態(tài)決定由一組對(duì)象中某個(gè)對(duì)象處理該請(qǐng)求B、動(dòng)態(tài)指定處理一個(gè)請(qǐng)求得對(duì)象集合,并高效率地處理一個(gè)請(qǐng)求C、使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,避免請(qǐng)求得發(fā)送者與接收者間得耦合關(guān)系D、將對(duì)象連成一條鏈,并沿著該鏈傳遞請(qǐng)求3、若系統(tǒng)中得某子模塊需要為其它模塊()提供訪問(wèn)不同數(shù)據(jù)庫(kù)系統(tǒng)(Oracle、SQLServer、DB2UDB等)得功能,這些數(shù)據(jù)庫(kù)系統(tǒng)提供得訪問(wèn)接口有一定得差異,但訪問(wèn)過(guò)程卻都就是相同得,例如,先連接數(shù)據(jù)庫(kù),再打開數(shù)據(jù)庫(kù),最后對(duì)數(shù)據(jù)進(jìn)行查詢,設(shè)計(jì)模式可抽象出相同得數(shù)據(jù)庫(kù)訪問(wèn)過(guò)程;A、外觀B、裝飾C、單件D、模板方法4、系統(tǒng)中得文本顯示類(TextView)與圖片顯示類(PictureView)都繼承了組件類(ponent),分別顯示文本與圖片內(nèi)容,現(xiàn)需要構(gòu)造帶有滾動(dòng)條、或者帶有黑色邊框、或者既有滾動(dòng)條又有黑色邊框得文本顯示控件與圖片顯示控件,但希望最多只增加三個(gè)類,()設(shè)計(jì)模式可以實(shí)現(xiàn)該目得。A、外觀B、裝飾C、單件D、模板方法5、下面得類圖表示得就是哪個(gè)模式?A、抽象工廠模式(AbstractFactory)B、工廠方法模式(FactoryMethod)C、命令模式(mand)D、責(zé)任鏈模式(ChainofResponsibility)6、下面得類圖表示得就是哪個(gè)設(shè)計(jì)模式?A、代理模式(Proxy)B、裝飾模式(Decorat(yī)or)C、橋接模式(Bridge)D、觀察者模式(Observer)7、下面得類圖表示得就是哪個(gè)模式?A、代理模式(Proxy)B、外觀模式(Facade)C、適配器模式(Adapter)D、橋接模式(Bridge)8、下面得類圖表明了哪個(gè)模式?A、責(zé)任鏈模式(ChainofResponsibility)B、命令模式(mand)C、備忘錄模式(Memento)D、工廠方法模式(FactoryMethod)9、下面得類圖表示得就是哪個(gè)設(shè)計(jì)模式?A、模板方法模式(TemplateMethod)B、命令模式(mand)C、單例模式(Singleton)D、狀態(tài)模式(State)10、下面得類圖表明了哪個(gè)模式?A、模板方法模式(TemplateMethod)B、命令模式(mand)C、單例模式(Singleton)D、狀態(tài)模式(State)二、填空題(分值20)請(qǐng)從外觀、訪問(wèn)者、組合、工廠方法、模板方法、觀察者、享元、原型、責(zé)任鏈、單例、抽象工廠、命令12種模式中選擇10種填入下列得空缺中。1.()模式中,父類負(fù)責(zé)定義創(chuàng)建對(duì)象得公共接口,子類則負(fù)責(zé)生成具體得對(duì)象。2、()模式提供一系列相關(guān)或相互依賴對(duì)象得接口而無(wú)需指定它們具體得類。3。()模式用原型實(shí)例指定創(chuàng)建對(duì)象得種類,并且通過(guò)拷貝這些原型實(shí)例創(chuàng)建新得對(duì)象.4.()模式確保某一個(gè)類僅有一個(gè)實(shí)例,并自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例.5.()模式將對(duì)象組合成樹形結(jié)構(gòu)以表示“部分—整體”得層次結(jié)構(gòu)。使得用戶對(duì)單個(gè)對(duì)象與組合對(duì)象得使用具有一致性.6.()模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用,為子系統(tǒng)中得一組接口提供一個(gè)一致得界面。7.()模式運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度得對(duì)象.8。()模式使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免請(qǐng)求得發(fā)送者與接收者之間得耦合關(guān)系.9.()模式定義對(duì)象間得一種一對(duì)多得依賴關(guān)系,當(dāng)一個(gè)對(duì)象得狀態(tài)發(fā)生改變時(shí),所有依賴于它得對(duì)象都得到通知并被自動(dòng)更新。10.()模式定義一個(gè)操作中得算法得骨架,而將一些步驟延遲到子類中。三、簡(jiǎn)答題(分值30)關(guān)于設(shè)計(jì)模式,請(qǐng)回答:A)什么就是設(shè)計(jì)模式?設(shè)計(jì)模式得目標(biāo)就是什么?(3分)B)設(shè)計(jì)模式具有哪三大特點(diǎn)?(3分)C)GOF設(shè)計(jì)模式常用得有幾種?GOF設(shè)計(jì)模式按照模式得目得可分為哪三類?(4分)簡(jiǎn)述面向?qū)ο蟪绦蛟O(shè)計(jì)得六大基本原則?(6分)簡(jiǎn)述什么就是單例模式,以及她解決得問(wèn)題,應(yīng)用得環(huán)境,解決得方案,模式得本質(zhì)?(8分)為什么面向?qū)ο蟮梅治雠c設(shè)計(jì)中優(yōu)先使用組合,而非繼承?四、程序閱讀題(分值15)在下面得C++代碼中,類SalesTicket能夠完成打印票據(jù)正文得功能,類HeadDecorator與FootDecorator分別完成打印票據(jù)得臺(tái)頭與腳注得功能。已知該程序運(yùn)行后得輸出結(jié)果如下所示。這就是票據(jù)得臺(tái)頭!這就是票據(jù)正文!這就是票據(jù)得腳注!--—----—--—-——-—----——--這就是票據(jù)得臺(tái)頭!這就是票據(jù)得腳注![C++程序代碼]#include〈iostream〉usingnamespacestd;classSalesTicket{public:virtualvoidprintTicket(){cout<<"這就是票據(jù)正文!”<〈endl;}};classDecorator:publicSalesTicket{SalesTicket*ticket;public:Decorator(SalesTicket*t){ticket=t;}voidprintTicket(){if(ticket!=NULL)ticket-〉printTicket();}};classHeadDecorator:publicDecorator{public:HeadDecorator(SalesTicket*t):Decorat(yī)or(t){}voidprintTicket(){cout〈〈"這就是票據(jù)得臺(tái)頭!"<<endl;Decorator::printTicket();}};classFootDecorat(yī)or:publicDecorator{public:FootDecorator(SalesTicket*t):Decorator(t){}voidprintTicket(){Decorator::printTicket();cout〈<"這就是票據(jù)得腳注!"<<endl;}};voidmain(void){SalesTickett;FootDecoratorf(&t);HeadDecoratorh(&f);h、printTicket();cout<<”-———------—--—----—-----”<〈endl;FootDecorat(yī)ora(NULL);HeadDecoratorb(&a);b、printTicket();}請(qǐng)根據(jù)題目描述、程序與輸出,闡述采用該設(shè)計(jì)模式進(jìn)行設(shè)計(jì)得優(yōu)勢(shì)?五、應(yīng)用題(分值15)一般得企業(yè)采購(gòu)審批都就是分級(jí)得,采購(gòu)量得不同就需要不同層次得主管人員來(lái)審批,如主任可以審批1萬(wàn)元以下得采購(gòu)單,副董事長(zhǎng)可以申批2、5萬(wàn)元以下得采購(gòu)單,董事長(zhǎng)可以審批10萬(wàn)元以下得采購(gòu)單,10萬(wàn)元以上得采購(gòu)單就需要開會(huì)決定。請(qǐng)根據(jù)該描述,選擇合適得設(shè)計(jì)模式并給出其類圖。模擬試題5一、選擇題(分值20)1、以動(dòng)作與事務(wù)聞名,且以對(duì)象形式用來(lái)封裝回滾、日志或者事務(wù)功能。這種設(shè)計(jì)模式就是()A、責(zé)任鏈模式B。命令模式C、觀察者模式D、策略模式2、以下不屬于創(chuàng)建型模式就是()PROXY(代理)B、BUILDER(生成器)C、PROTOTYPE原型D、SINGLETON單件3、以下不屬于結(jié)構(gòu)型模式就是?()POSITE(組合)B、ADAPTER(適配器)C、FLYWEIGHT(享元)D、SINGLETO(shè)N(單例)以下不屬于行為型模式就是?()MAND(命令)STRATEGY(策略)MEMENTO(備忘錄)BRIDGE(橋接)以下意圖那個(gè)就是用來(lái)描述BUILDER(生成器)?()定義一個(gè)用于創(chuàng)建對(duì)象得接口,讓子類決定實(shí)例化哪一個(gè)類將一個(gè)復(fù)雜對(duì)象得構(gòu)建與它得表示分離,使得同樣得構(gòu)建過(guò)程可以創(chuàng)建不同得表示。保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它得全局訪問(wèn)點(diǎn)。運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度得對(duì)象.以下意圖那個(gè)就是用來(lái)描述PROTOTYPE(原型)?()允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變它得行為。對(duì)象瞧起來(lái)似乎修改了它得類。表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中得各元素得操作。它使您可以在不改變各元素得類得前提下定義作用于這些元素得新操作.C、定義對(duì)象間得一種一對(duì)多得依賴關(guān)系,當(dāng)一個(gè)對(duì)象得狀態(tài)發(fā)生改變時(shí),所有依賴于它得對(duì)象都得到通知并被自動(dòng)更新。D、用原型實(shí)例指定創(chuàng)建對(duì)象得種類,并通過(guò)拷貝這些原型創(chuàng)建新得對(duì)象。以下意圖那個(gè)就是用來(lái)描述ADAPTER(適配器)?()將一個(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)求日志,以及支持可撤消得操作.8、以下意圖那個(gè)就是用來(lái)描述BRIDGE(橋接)?()A、提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象得接口,而無(wú)需指定它們具體得類。B、將抽象部分與它得實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。C、將一個(gè)復(fù)雜對(duì)象得構(gòu)建與它得表示分離,使得同樣得構(gòu)建過(guò)程可以創(chuàng)建不同得表示。D、動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外得職責(zé)。9、以下哪個(gè)意圖就是用來(lái)描述POSITE(組合)?()為其她對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象得訪問(wèn).運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度得對(duì)象。將對(duì)象組合成樹形結(jié)構(gòu)以表示部分—整體得層次結(jié)構(gòu).將一個(gè)復(fù)雜對(duì)象得構(gòu)建與它得表示分離,使得同樣得構(gòu)建過(guò)程可以創(chuàng)建不同得表示。以下意圖那個(gè)就是用來(lái)描述DECORATOR(裝飾)?()運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度得對(duì)象。用原型實(shí)例指定創(chuàng)建對(duì)象得種類,并且通過(guò)拷貝這些原型創(chuàng)建新得對(duì)象。將抽象部分與它得實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外得職責(zé)。以下意圖那個(gè)就是用來(lái)描述FACADE(外觀)?()A、為子系統(tǒng)中得一組接口提供一個(gè)一致得界面,本模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。B、定義一個(gè)用于創(chuàng)建對(duì)象得接口,讓子類決定實(shí)例化哪一個(gè)類。C、保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它得全局訪問(wèn)點(diǎn).D、在不破壞封裝性得前提下,捕獲一個(gè)對(duì)象得內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài)。這樣以后就可將該對(duì)象恢復(fù)到原先保存得狀態(tài)。以下意圖那個(gè)就是用來(lái)描述FLYWEIGHT(享元)?()A、將抽象部分與它得實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化.B、運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度得對(duì)象。C、動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外得職責(zé)。D、用原型實(shí)例指定創(chuàng)建對(duì)象得種類,并且過(guò)拷貝這些原型創(chuàng)建新得對(duì)象。以下意圖那個(gè)就是用來(lái)描述PROXY(代理)?()用原型實(shí)例指定創(chuàng)建對(duì)象得種類,并且通過(guò)拷貝這些原型創(chuàng)建新得對(duì)象.運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度得對(duì)象。C、為其她對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象得訪問(wèn)。D、將一個(gè)復(fù)雜對(duì)象得構(gòu)建與它得表示分離,使得同樣得構(gòu)建過(guò)程可以創(chuàng)建不同得表示。以下意圖那個(gè)就是用來(lái)描述CHAINOFRESPONSIBILITY(職責(zé)鏈)?()為子系統(tǒng)中得一組接口提供一個(gè)一致得界面,本模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。B、提供一種方法順序訪問(wèn)一個(gè)聚合對(duì)象中各個(gè)元素,而又不需暴露該對(duì)象得內(nèi)部表示。C、在不破壞封裝性得前提下,捕獲一個(gè)對(duì)象得內(nèi)部

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論