版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、總復(fù)習(xí)題復(fù)習(xí)參考資料:1. gof 設(shè)計(jì)模式2. 設(shè)計(jì)模式解析3. 易學(xué)設(shè)計(jì)模式4. 大話設(shè)計(jì)模式5. 深入淺出設(shè)計(jì)模式以參考資料為主,模擬試題1-5中有些題答案在一些附加資料中模擬試題1一、 選擇題(分值20)1. 設(shè)計(jì)模式一般用來解決什么樣的問題( )a.同一問題的不同表相 b不同問題的同一表相c.不同問題的不同表相 d.以上都不是2. 下列屬于面向?qū)ο蠡驹瓌t的是( )a.繼承 b.封裝 c.里氏代換 d都不是3. open-close原則的含義是一個(gè)軟件實(shí)體( )a.應(yīng)當(dāng)對擴(kuò)展開放,對修改關(guān)閉.b.應(yīng)當(dāng)對修改開放,對擴(kuò)展關(guān)閉c.應(yīng)當(dāng)對繼承開放,對修改關(guān)閉d.以上都不對4. 當(dāng)我們想創(chuàng)建
2、一個(gè)具體的對象而又不希望指定具體的類時(shí),可以使用( )模式。a.創(chuàng)建型 b.結(jié)構(gòu)型 c行為型 d.以上都可以5. 要依賴于抽象,不要依賴于具體。即針對接口編程,不要針對實(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.以上都不對7. 設(shè)計(jì)模式的兩大主題是( )a.系統(tǒng)的維護(hù)與開發(fā) b 對象組合與類的繼承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)工廠方法
3、 d.以上都不對9. 下列模式中,屬于行為模式的是( )a.工廠模式 b觀察者 c適配器 以上都是10. “不要和陌生人說話” 是( )原則的通俗表述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) ,它并沒告訴我們系統(tǒng)是 。3接口是可以在整個(gè)模型中反復(fù)使用的一組行為,是一個(gè)沒有 而只有 的類。4多重性指的是,某個(gè)類有 個(gè)對象可以和另一個(gè)類的 對象關(guān)聯(lián)。5當(dāng)一個(gè)類的對象可以充當(dāng)多種角色時(shí), 關(guān)聯(lián)就可能發(fā)生。6在泛化關(guān)系
4、中, 可以替代 。也就是說,后者出現(xiàn)的地方,前者都可以出現(xiàn)。但是反過來卻不成立。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)1. 適配器模式屬于創(chuàng)建型模式( )2. 在設(shè)計(jì)模式中,“效果”只是指“原因和結(jié)果”( )3. 設(shè)計(jì)模式使代碼編制不能真正工程化 ( )4. 面向?qū)ο笳Z言編程中的異常處理,可以理解為責(zé)任鏈模式( )5. 反模式就是反對在軟件開發(fā)過程中使用設(shè)計(jì)模式( )四、問答
5、題(分值30)1. 什么是設(shè)計(jì)模式?設(shè)計(jì)模式目標(biāo)是什么?2. 設(shè)計(jì)模式中一般都遵循的原則有什么?3. “gang of four”針對“創(chuàng)建優(yōu)秀面向?qū)ο笤O(shè)計(jì)”建議了哪些策略?4. 面向?qū)ο笙到y(tǒng)中功能復(fù)用的兩種最常用技術(shù)是什么?5. 只根據(jù)抽象類中定義的接口來操縱對象有什么好處?五、應(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)系?并說明為什么?模擬試題2一、 選擇題(分值20)1. 在觀察者模式中,表述錯(cuò)誤的是( )a. 觀察者角色的更新是被動(dòng)的。b. 被觀
6、察者可以通知觀察者進(jìn)行更新c. 觀察者可以改變被觀察者的狀態(tài),再由被觀察者通知所有觀察者依據(jù)被觀察者的狀態(tài)進(jìn)行。d. 以上表述全部錯(cuò)誤。2. 對于違反里式代換原則的兩個(gè)類,可以采用的候選解決方案錯(cuò)誤的是:( )a. 創(chuàng)建一個(gè)新的抽象類c,作為兩個(gè)具體類的超類,將a 和b 共同的行為移動(dòng)到c 中,從而解決a和b 行為不完全一致的問題。b. 將b到a的繼承關(guān)系改組成委派關(guān)系。c. 區(qū)分是“is-a”還是”hasa”。如果是“is-a”,可以使用繼承關(guān)系,如果是”hasa”應(yīng)該改成委派關(guān)系d. 以上方案錯(cuò)誤3. 下列模式屬于結(jié)構(gòu)型設(shè)計(jì)模式的是( )a. compositeb. 享元(flyweigh
7、t)模式c. 單體模式d. 工廠方法4. 關(guān)于繼承表述錯(cuò)誤的是:( )a. 繼承是一種通過擴(kuò)展一個(gè)已有對象的實(shí)現(xiàn),從而獲得新功能的復(fù)用方法。b. 泛化類(超類)可以顯式地捕獲那些公共的屬性和方法。特殊類(子類)則通過附加屬性和方法來進(jìn)行實(shí)現(xiàn)的擴(kuò)展。c. 破壞了封裝性,因?yàn)檫@會(huì)將父類的實(shí)現(xiàn)細(xì)節(jié)暴露給子類。d. 繼承本質(zhì)上是“白盒復(fù)用”,對父類的修改,不會(huì)影響到子類。5. 對于依賴倒轉(zhuǎn)的表述錯(cuò)誤的是( )a. 依賴于抽象而不依賴于具體,也就是針對接口編程。b. 依賴倒轉(zhuǎn)的接口并非語法意義上的接口,而是一個(gè)類對其他對象進(jìn)行調(diào)用時(shí),所知道的方法集合。c. 從選項(xiàng)b的角度論述,一個(gè)對象可以有多個(gè)接口。d
8、. 實(shí)現(xiàn)了同一接口的對象,可以在運(yùn)行期間,順利地進(jìn)行替換。而且不必知道所用的對象是那個(gè)實(shí)現(xiàn)類的實(shí)例。e. 此題沒有正確答案。6. 可以使用哪一種設(shè)計(jì)模式限制類的實(shí)例唯一?( )a. 工廠方法b. 生成器模式c. 原型模式d單體模式7. java數(shù)據(jù)庫連接庫jdbc用到哪種設(shè)計(jì)模式( )?a. 生成器 b.工廠方法 c.抽象工廠 d單體8. 關(guān)于運(yùn)用gof工廠方法的效果consequences,說法不正確的是( )a. 將客戶代碼與應(yīng)用相關(guān)的類解耦b. 它使得所涉及的產(chǎn)品系列可替換c. 它有利于產(chǎn)品的一致性d它較易于支持新種類的產(chǎn)品8. 在應(yīng)用程序中可用哪些設(shè)計(jì)模式分離出算法?( )a. 工廠方
9、法b. 策略模式c. 訪問者模式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)1. 面向?qū)ο蟮钠邨l基本原則包括:開閉原則,里式代換原則,合成聚合原則以及( ),( ),( ),( )。2. 在存在繼承關(guān)系的情況下,方法向( )方向集中,而數(shù)據(jù)向( )方向集中。3. 適配器模式,分為類的適配器和對象的適配器兩種實(shí)現(xiàn)。其中類的適配器采用的是( )關(guān)系,而對象適配器采用的是( )關(guān)系。4.
10、設(shè)計(jì)模式的四個(gè)基本要素是( ),( ),( )和( )。5. .創(chuàng)建型模式的根本意圖是要把( )和( )的責(zé)任進(jìn)行分離,從而降低系統(tǒng)的( )。6. 工廠模式分為( ),( ),( )三種類型。7. 門面模式是( )法則的典型運(yùn)用8. mvc模型的基本工作原理是基于( )模式,實(shí)現(xiàn)是基于( )模式9. 設(shè)計(jì)模式的思想根源是( )基本原則的宏觀運(yùn)用,本質(zhì)上是沒有任何模式的,發(fā)現(xiàn)模式的人永遠(yuǎn)是大師,而死守模式的人,最對只能是一個(gè)工匠. 三、 判斷題(分值15) 1. 虛擬代理可以使用一個(gè)小對象代替大對象,從而減少系統(tǒng)的資源的消耗,提高系統(tǒng)運(yùn)行速度。( )2. 命令模式可以消除請求發(fā)送者與請求接收者彼
11、此之間的耦合,使得對象之間的關(guān)系更加靈活。( )3. 解釋器模式是對象行為型模式,通常較少使用。( )4. 迭代器模式是開閉原則最好體現(xiàn),因?yàn)榈髂J綄⒕酆蠈ο蠛偷鞣蛛x開來。( )5. 中介者模式設(shè)計(jì)符合單一職責(zé)原則。( ) 得分評卷人 四、問答題(分值30) 1. 在mvc模型中m、v、c分別指什么?簡述它們之間的關(guān)系?2. 什么是開閉原則?3. 設(shè)計(jì)數(shù)據(jù)庫的系統(tǒng)日志,要考慮使用哪些設(shè)計(jì)模式?4. 使用工廠模式的主要原因是什么?5. 在面向?qū)ο笤O(shè)計(jì)中,編譯原理的有限狀態(tài)機(jī)可以什么樣解決方案完成? 五、應(yīng)用題(分值20)考慮如下場景的設(shè)計(jì):貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。問
12、:(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)以下哪些問題通過應(yīng)用設(shè)計(jì)模式能夠解決( ) 。 a)指定對象的接口b)排除軟件bug c)確定軟件的功能都正確實(shí)現(xiàn)d)設(shè)計(jì)應(yīng)支持變化(4)面向?qū)ο笙到y(tǒng)中功能復(fù)用的最常用技術(shù)是( )。a)類繼承b)對象組合c)使用抽象類d)使用實(shí)現(xiàn)類(5)常用的基本設(shè)計(jì)模式可分為( )。a)創(chuàng)建型、結(jié)構(gòu)型和行為型b)對象型、結(jié)構(gòu)型和行為型c)過程型、結(jié)構(gòu)型
13、和行為型d)抽象型、接口型和實(shí)現(xiàn)型(6)以下關(guān)于創(chuàng)建型模式說法正確的是( )。a)創(chuàng)建型模式關(guān)注的是對象的創(chuàng)建 b)創(chuàng)建型模式關(guān)注的是功能的實(shí)現(xiàn)c)創(chuàng)建型模式關(guān)注的是組織類和對象的常用方法 d)創(chuàng)建型模式關(guān)注的是對象間的協(xié)作 (7)以下屬于創(chuàng)建型模式的是( )。a)抽象工廠(abstract factory)模式 b)合成(composite)模式 c)單例(singleton)模式d)橋接(bridge)模式(8) ( )模式是利用一個(gè)對象,快速生成一批對象。a)抽象工廠(abstract factory)模式 b)合成(composite)模式 c)原型(prototype)模式d)橋接(
14、bridge)模式(9)在不破壞類封裝性的基礎(chǔ)上,使得類可以同不曾估計(jì)到的系統(tǒng)進(jìn)行交互。主要體現(xiàn)在( )。 a)適配器(adapter)模式 b)合成(composite)模式 c)原型(prototype)模式d)橋接(bridge)模式(10)結(jié)構(gòu)型模式中最體現(xiàn)擴(kuò)展性的幾種模式是( )a)適配器(adapter)模式 b)合成(composite)模式 c)裝飾(decorator)模式d)橋接(bridge)模式(11)行為類模式使用( )在類間分派行為。a)接口 b)繼承機(jī)制c)對象組合 d)委托(12)以下屬于行為對象模式的是( )a)模板(template method)模式 b)
15、迭代器(iterator)模式 c)命令(command)模式d)觀察者(observer)模式(13)封裝分布于多個(gè)類之間的行為的模式是( ) a)觀察者(observer)模式 b)迭代器(iterator)模式 c)訪問者(visitor)模式d)策略(strategy)模式 (14)observer(觀察者)模式適用于( )a)當(dāng)一個(gè)抽象模型存在兩個(gè)方面,其中一個(gè)方面依賴于另一方面,將這二者封裝在獨(dú)立的對象中以使它們可以各自獨(dú)立地改變和復(fù)用。 b)當(dāng)對一個(gè)對象的改變需要同時(shí)改變其它對象,而不知道具體有多少對象有待改變時(shí)。 c)當(dāng)一個(gè)對象必須通知其它對象,而它又不能假定其它對象是誰。也就
16、是說你不希望這些對象是緊耦合的。d)一個(gè)對象結(jié)構(gòu)包含很多類對象,它們有不同的接口,而想對這些對象實(shí)施一些依賴于其具體類的操作。(15)java的異常處理機(jī)制可理解為哪一種行為模式( )。a)觀察者(observer)模式 b)迭代器(iterator)模式 c)職責(zé)鏈(chain of responsibility)模式d)策略(strategy)模式 二、 填空題(分值20)把下列面向?qū)ο蟮男g(shù)語填入對應(yīng)的括號(hào)中:里氏替換(lsp)、接口隔離(isp)、依賴倒置(dip)、單一職責(zé)(srp)、開閉(ocp)、優(yōu)先使用組合(carp)、接口1. ( )原則的核心思想是系統(tǒng)中的每一個(gè)對象都應(yīng)該只有
17、一個(gè)單獨(dú)的職責(zé),而所有對象所關(guān)注的就是自身職責(zé)的完成。2. ( )原則的核心思想是一個(gè)對象對擴(kuò)展開放,對修改關(guān)閉;實(shí)現(xiàn)此原則的關(guān)鍵就在于( )、分離出( )部分和( )部分。3. ( )原則的核心思想是在任何父類出現(xiàn)的地方都可以用它的子類來替代。4. ( )原則的核心思想是要依賴于抽象,而不要依賴于具體的實(shí)現(xiàn)。5. ( )原則的核心思想是不應(yīng)該強(qiáng)迫客戶程序依賴于他們不用的方法。即一個(gè)接口不需要提供太多的行為,應(yīng)該只提供一種對外的功能,不應(yīng)該把所有的操作都封裝在一個(gè)接口中。6. ( )原則的核心思想是一個(gè)對象應(yīng)當(dāng)對其它對象盡可能少的了解?;蛘哒f,只和你的朋友說話。這樣一些對象可以看做朋友:當(dāng)前對
18、象本身、通過方法的參數(shù)傳遞進(jìn)來的對象、當(dāng)前對象所創(chuàng)建的對象、當(dāng)前對象的實(shí)例變量所引用的對象和方法內(nèi)所創(chuàng)建或者實(shí)例化的對象。7. ( )原則的核心思想是優(yōu)先使用組合而非繼承。8. 設(shè)計(jì)模式應(yīng)該面向( )編程 三、 判斷題(分值10)1. 單一職責(zé)原則表現(xiàn)在面向?qū)ο蟮某绦蛑芯褪恰案邇?nèi)聚、低耦合”。( ) 2. 設(shè)計(jì)模式只能遵從使用,不能也無需創(chuàng)新。( )3. 在面向?qū)ο缶幊虝r(shí),無論何時(shí)何地都要使用gof所給出的設(shè)計(jì)模式,這樣編寫的代碼才比較好。( )4. 工廠方法能夠提高內(nèi)聚性,松散耦合,并且有助于測試。( )5. 對象要么構(gòu)造其它對象,要么使用其它對象,絕不要兩者兼顧。( ) 四、問答題(分值3
19、0)1. 單例模式的兩種實(shí)現(xiàn)方法,并說明優(yōu)缺點(diǎn)?2. 什么是對象粒度? 3. mvc模式是個(gè)復(fù)合模式,請寫出你兩種你所知道的mvc中使用的模式。4. 舉例說明,適配器模式和裝配器在java io中的應(yīng)用。5. 在面向?qū)ο蟪绦蛟O(shè)計(jì)中,常常需要避免過多case語句或者if語句,請給出一種設(shè)計(jì)模式避免過多的條件分支語句,同時(shí)指出這種設(shè)計(jì)模式如何幫助避免過多的case語句?五、應(yīng)用題(分值10)某房地產(chǎn)公司欲開發(fā)一套房產(chǎn)信息管理系統(tǒng),根據(jù)如下描述選擇合適的設(shè)計(jì)模式進(jìn)行設(shè)計(jì): (1) 該公司有多種房型,如公寓、別墅等,在將來可能會(huì)增加新的房型;(2) 銷售人員每售出一套房子,主管將收到相應(yīng)的銷售消息。如
20、果對上述場景編程,那么上述(1)和(2)可能分別用到哪些設(shè)計(jì)模式?模擬試題4一、 選擇題(分值20)1. 設(shè)計(jì)模式具有的優(yōu)點(diǎn)( )。a. 適應(yīng)需求變化 b. 程序易于理解c. 減少開發(fā)過程中的代碼開發(fā)工作量 d. 簡化軟件系統(tǒng)的設(shè)計(jì)2. 下圖描述了一種設(shè)計(jì)模式,該設(shè)計(jì)模式不可以( )。a. 動(dòng)態(tài)決定由一組對象中某個(gè)對象處理該請求b. 動(dòng)態(tài)指定處理一個(gè)請求的對象集合, 并高效率地處理一個(gè)請求c. 使多個(gè)對象都有機(jī)會(huì)處理請求,避免請求的發(fā)送者和接收者間的耦合關(guān)系d. 將對象連成一條鏈,并沿著該鏈傳遞請求3. 若系統(tǒng)中的某子模塊需要為其它模塊( )提供訪問不同數(shù)據(jù)庫系統(tǒng)(oracle、sql ser
21、ver、db2 udb 等)的功能,這些數(shù)據(jù)庫系統(tǒng)提供的訪問接口有一定的差異,但訪問過程卻都是相同的,例如,先連接數(shù)據(jù)庫,再打開數(shù)據(jù)庫,最后對數(shù)據(jù)進(jìn)行查詢, 設(shè)計(jì)模式可抽象出相同的數(shù)據(jù)庫訪問過程;a. 外觀 b. 裝飾 c. 單件 d. 模板方法4. 系統(tǒng)中的文本顯示類(textview)和圖片顯示類(pictureview)都繼承了組件類(component),分別顯示文本和圖片內(nèi)容,現(xiàn)需要構(gòu)造帶有滾動(dòng)條、或者帶有黑色邊框、或者既有滾動(dòng)條又有黑色邊框的文本顯示控件和圖片顯示控件,但希望最多只增加三個(gè)類,( )設(shè)計(jì)模式可以實(shí)現(xiàn)該目的。a. 外觀 b. 裝飾 c. 單件 d. 模板方法5. 下面
22、的類圖表示的是哪個(gè)模式?a. 抽象工廠模式(abstract factory)b. 工廠方法模式(factory method)c. 命令模式(command)d. 責(zé)任鏈模式(chain of responsibility)6. 下面的類圖表示的是哪個(gè)設(shè)計(jì)模式?a. 代理模式(proxy) b. 裝飾模式(decorator)c. 橋接模式(bridge) d. 觀察者模式(observer)7. 下面的類圖表示的是哪個(gè)模式?a. 代理模式(proxy) b. 外觀模式(facade)c. 適配器模式(adapter) d. 橋接模式(bridge)8. 下面的類圖表明了哪個(gè)模式?a. 責(zé)任
23、鏈模式(chain of responsibility)b. 命令模式(command)c. 備忘錄模式(memento)d. 工廠方法模式(factory method)9. 下面的類圖表示的是哪個(gè)設(shè)計(jì)模式?a. 模板方法模式(template method)b. 命令模式(command)c. 單例模式(singleton) d. 狀態(tài)模式(state)10. 下面的類圖表明了哪個(gè)模式?a. 模板方法模式(template method) b. 命令模式(command)c. 單例模式(singleton) d. 狀態(tài)模式(state) 二、 填空題(分值20)請從外觀、訪問者、組合、工廠
24、方法、模板方法、觀察者、享元、原型、責(zé)任鏈、單例、抽象工廠、命令12 種模式中選擇10 種填入下列的空缺中。1 ( )模式中,父類負(fù)責(zé)定義創(chuàng)建對象的公共接口,子類則負(fù)責(zé)生成具體的對象。2.( )模式提供一系列相關(guān)或相互依賴對象的接口而無需指定它們具體的類。3( )模式用原型實(shí)例指定創(chuàng)建對象的種類,并且通過拷貝這些原型實(shí)例創(chuàng)建新的對象。4( )模式確保某一個(gè)類僅有一個(gè)實(shí)例,并自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。5 ( )模式將對象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。使得用戶對單個(gè)對象和組合對象的使用具有一致性。6 ( )模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用,為子系
25、統(tǒng)中的一組接口提供一個(gè)一致的界面。7 ( )模式運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象。8 ( )模式使多個(gè)對象都有機(jī)會(huì)處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系。9 ( )模式定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個(gè)對象的狀態(tài)發(fā)生改變時(shí), 所有依賴于它的對象都得到通知并被自動(dòng)更新。10 ( )模式定義一個(gè)操作中的算法的骨架,而將一些步驟延遲到子類中。 三、簡答題(分值30)關(guān)于設(shè)計(jì)模式,請回答:a) 什么是設(shè)計(jì)模式?設(shè)計(jì)模式的目標(biāo)是什么?(3 分)b) 設(shè)計(jì)模式具有哪三大特點(diǎn)?(3 分)c) gof 設(shè)計(jì)模式常用的有幾種?gof 設(shè)計(jì)模式按照模式的目的可分為哪三類?(4 分)1.
26、簡述面向?qū)ο蟪绦蛟O(shè)計(jì)的六大基本原則?(6分)2. 簡述什么是單例模式,以及他解決的問題,應(yīng)用的環(huán)境,解決的方案,模式的本質(zhì)? (8分)3. 為什么面向?qū)ο蟮姆治龊驮O(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 using namespace std;class salestic
27、ket public:virtual void printticket() cout 這是票據(jù)正文! printticket();class headdecorator : public decoratorpublic:headdecorator(salesticket *t): decorator(t) void printticket() cout 這是票據(jù)的臺(tái)頭! endl;decorator:printticket();class footdecorator :public decoratorpublic:footdecorator(salesticket *t): decorator
28、(t) void printticket() decorator:printticket();cout 這是票據(jù)的腳注! endl;void main(void) salesticket t;footdecorator f(&t);headdecorator h(&f);h.printticket();cout - endl;footdecorator a(null);headdecorator b(&a);b.printticket();請根據(jù)題目描述、程序和輸出,闡述采用該設(shè)計(jì)模式進(jìn)行設(shè)計(jì)的優(yōu)勢?五、應(yīng)用題(分值15)一般的企業(yè)采購審批都是分級(jí)的,采購量的不同就需要不同層次的主管人員來審批
29、,如主任可以審批1 萬元以下的采購單,副董事長可以申批2.5 萬元以下的采購單,董事長可以審批10萬元以下的采購單,10 萬元以上的采購單就需要開會(huì)決定。請根據(jù)該描述,選擇合適的設(shè)計(jì)模式并給出其類圖。模擬試題5一、 選擇題(分值20)1. 以動(dòng)作和事務(wù)聞名,且以對象形式用來封裝回滾、日志或者事務(wù)功能。這種設(shè)計(jì)模式是( )a. 責(zé)任鏈模式b命令模式c. 觀察者模式d. 策略模式2. 以下不屬于創(chuàng)建型模式是 ( )a. proxy(代理)b. builder(生成器)c. prototype原型 d. singleton單件3. 以下不屬于結(jié)構(gòu)型模式是? ( )a. composite(組合)b.
30、 adapter(適配器)c. flyweight(享元)d. singleton(單例)4. 以下不屬于行為型模式是? ( )a. command(命令)b. strategy(策略)c. memento(備忘錄)d. bridge(橋接)5. 以下意圖那個(gè)是用來描述builder(生成器)?( )a. 定義一個(gè)用于創(chuàng)建對象的接口,讓子類決定實(shí)例化哪一個(gè)類b. 將一個(gè)復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。c. 保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)。d. 運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象。6. 以下意圖那個(gè)是用來描述prototype(原型)
31、?( )a. 允許一個(gè)對象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為。對象看起來似乎修改了它的類。b. 表示一個(gè)作用于某對象結(jié)構(gòu)中的各元素的操作。它使你可以在不改變各 元素的類的前提下定義作用于這些元素的新操作。c. 定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個(gè)對象的狀態(tài)發(fā)生改變時(shí), 所有依賴于它的對象都得到通知并被自動(dòng)更新。d. 用原型實(shí)例指定創(chuàng)建對象的種類,并通過拷貝這些原型創(chuàng)建新的對象。7. 以下意圖那個(gè)是用來描述adapter(適配器)?( )a. 將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。本模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。b. 定義一個(gè)用于創(chuàng)建對象的接口,讓子類決定實(shí)
32、例化哪一個(gè)類c. 表示一個(gè)作用于某對象結(jié)構(gòu)中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作。d. 將一個(gè)請求封裝為一個(gè)對象,從而使你可用不同的請求對客戶進(jìn)行參數(shù)化;對請求排隊(duì)或記錄請求日志,以及支持可撤消的操作。8. 以下意圖那個(gè)是用來描述bridge(橋接)?( )a. 提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定它們具體的類。b. 將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。c. 將一個(gè)復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。d. 動(dòng)態(tài)地給一個(gè)對象添加一些額外的職責(zé)。9. 以下哪個(gè)意圖是用來描述composit
33、e(組合)?( )a. 為其他對象提供一種代理以控制對這個(gè)對象的訪問。b. 運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象。c. 將對象組合成樹形結(jié)構(gòu)以表示部分-整體的層次結(jié) 構(gòu)。d. 將一個(gè)復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。10. 以下意圖那個(gè)是用來描述decorator(裝飾)?( )a. 運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象。b. 用原型實(shí)例指定創(chuàng)建對象的種類,并且通過拷貝這些原型創(chuàng)建新的對象。c. 將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立 地變化。d. 動(dòng)態(tài)地給一個(gè)對象添加一些額外的職責(zé)。11. 以下意圖那個(gè)是用來描述 facade(外觀)?( )a.
34、 為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,本模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。b. 定義一個(gè)用于創(chuàng)建對象的接口,讓子類決定實(shí)例化哪一個(gè)類。c. 保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)。d. 在不破壞封裝性的前提下,捕獲一個(gè)對象的內(nèi)部狀態(tài),并在該對象之外保存這個(gè)狀態(tài)。這樣以后就可將該對象恢復(fù)到原先保存的狀態(tài)。12. 以下意圖那個(gè)是用來描述flyweight(享元)?( )a. 將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。b. 運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象。c. 動(dòng)態(tài)地給一個(gè)對象添加一些額外的職責(zé)。d. 用原型實(shí)例指定創(chuàng)建對象的種類,并且
35、過拷貝這些原型創(chuàng)建新的對象。13. 以下意圖那個(gè)是用來描述 proxy(代理)?( )a. 用原型實(shí)例指定創(chuàng)建對象的種類,并且通過拷貝這些原型創(chuàng)建新的對象。b. 運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象。c. 為其他對象提供一種代理以控制對這個(gè)對象的訪問。d. 將一個(gè)復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。14. 以下意圖那個(gè)是用來描述chain of responsibility(職責(zé)鏈)?( )a. 為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,本模 式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。b. 提供一種方法順序訪問一個(gè)聚合對象中各個(gè)元素, 而又不需暴露該對象的內(nèi)部表示。c. 在不破壞封裝性的前提下,捕獲一個(gè)對象的內(nèi)部狀態(tài),并在該對象之外保存這個(gè)狀態(tài)。這樣以后就可將該對象恢復(fù)到原先保存的狀態(tài)。d. 使多個(gè)對象都有機(jī)會(huì)處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系。15. 以下意圖那個(gè)是用來描述 command(命令)?( )a.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度循環(huán)借款資產(chǎn)證券化合同3篇
- 二零二五版木工技術(shù)改造與升級(jí)合同4篇
- 2025版大學(xué)生家庭離婚協(xié)議范本:子女撫養(yǎng)權(quán)與財(cái)產(chǎn)分割方案4篇
- 二零二五年度專業(yè)代理開票協(xié)議書8篇
- 2025年度國際貿(mào)易結(jié)算票據(jù)質(zhì)押融資協(xié)議4篇
- 2025年中國百合加工行業(yè)市場深度分析及發(fā)展趨勢預(yù)測報(bào)告
- 2025年中國全麻包行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 2025年中國粗雜糧及粗雜糧加工市場競爭格局及未來投資前景預(yù)測報(bào)告
- 二零二五年度租賃汽車長租服務(wù)合同范本正規(guī)范本13篇
- 二零二五年度便利店加盟品牌使用權(quán)轉(zhuǎn)讓合同范本3篇 - 副本
- 湖北省黃石市陽新縣2024-2025學(xué)年八年級(jí)上學(xué)期數(shù)學(xué)期末考試題 含答案
- 硝化棉是天然纖維素硝化棉制造行業(yè)分析報(bào)告
- 央視網(wǎng)2025亞冬會(huì)營銷方案
- 《00541語言學(xué)概論》自考復(fù)習(xí)題庫(含答案)
- 《無砟軌道施工與組織》 課件 第十講雙塊式無砟軌道施工工藝
- 江蘇省南京市、鹽城市2023-2024學(xué)年高三上學(xué)期期末調(diào)研測試+英語+ 含答案
- 2024新版《藥品管理法》培訓(xùn)課件
- 《阻燃材料與技術(shù)》課件 第7講 阻燃橡膠材料
- 爆炸物運(yùn)輸安全保障方案
- 江蘇省南京市2025屆高三學(xué)業(yè)水平調(diào)研考試數(shù)學(xué)試卷(解析版)
- 2024年黑龍江省哈爾濱市中考數(shù)學(xué)試卷(附答案)
評論
0/150
提交評論