設(shè)計模式考試復(fù)習(xí)題(共9頁)_第1頁
設(shè)計模式考試復(fù)習(xí)題(共9頁)_第2頁
設(shè)計模式考試復(fù)習(xí)題(共9頁)_第3頁
設(shè)計模式考試復(fù)習(xí)題(共9頁)_第4頁
設(shè)計模式考試復(fù)習(xí)題(共9頁)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上一、1. 設(shè)計模式一般用來解決什么樣的問題: A.同一問題的不同表相2. 下列屬于面向?qū)ο蠡驹瓌t的是: C.里氏代換3. Open-Close原則的含義是一個軟件實體:A.應(yīng)當(dāng)對擴(kuò)展開放,對修改關(guān)閉.4. 當(dāng)我們想創(chuàng)建一個具體的對象而又不希望指定具體的類時,使用(A)模式。A.創(chuàng)建型 5. 要依賴于抽象不要依賴于具體。即針對接口編程不要針對實現(xiàn)編程:(D)依賴倒轉(zhuǎn)原則6. 依據(jù)設(shè)計模式思想,程序開發(fā)中應(yīng)優(yōu)先使用的是( A )關(guān)系實現(xiàn)復(fù)用。A, 委派7. 設(shè)計模式的兩大主題是( D ) D.系統(tǒng)復(fù)用與系統(tǒng)擴(kuò)展8. 單體模式中,兩個基本要點(AB)和單體類自己提供單例A

2、 .構(gòu)造函數(shù)私有 B.唯一實例9. 下列模式中,屬于行為模式的是( B ) B觀察者10. “不要和陌生人說話” 是( D )原則的通俗表述 D.迪米特1. 軟件體系結(jié)構(gòu)是指一個系統(tǒng)的有目的的設(shè)計和規(guī)劃,這個設(shè)計規(guī)劃既不描述 活動 ,也不描述 系統(tǒng)怎樣開發(fā) ,它只描述系統(tǒng)的 組成元素 及其相互的 交互協(xié)作 。2一個UML模型只描述了一個系統(tǒng) 要做什么 ,它并沒告訴我們系統(tǒng)是 怎么做 。3接口是可以在整個模型中反復(fù)使用的一組行為,是一個沒有 屬性 而只有 方法 的類。4多重性指的是,某個類有 多 個對象可以和另一個類的 一 對象關(guān)聯(lián)。5當(dāng)一個類的對象可以充當(dāng)多種角色時, 自身 關(guān)聯(lián)就可能發(fā)生。6

3、在泛化關(guān)系中,子類 可以替代 父類。后前者出現(xiàn)的可以相同地方。反過來卻不成立。7最通常的依賴關(guān)系是一個類操作的 形構(gòu) 中用到了 另一個類 的定義。8組成是 強(qiáng)類型 的聚集,因為聚集中的每個部分體只能屬于 一個 整體。9實現(xiàn)的符號和繼承的符號有相似之處,兩者的唯一差別是實現(xiàn)關(guān)系用 虛線 表示,繼承關(guān)系用 實線 表示。10. 設(shè)計模式中應(yīng)優(yōu)先使用 對象組合 而不是 類繼承 。1. 適配器模式屬于創(chuàng)建型模式結(jié)構(gòu)型( F )2. 在設(shè)計模式中,“效果”只是指“原因和結(jié)果”( T )3. 設(shè)計模式使代碼編制不能真正工程化 ( T )4. 面向?qū)ο笳Z言編程中的異常處理,可以理解為責(zé)任鏈模式(T )5. 反

4、模式就是反對在軟件開發(fā)過程中使用設(shè)計模式分析:反模式用來解決問題的帶有共性的不良方法(F )1. 什么是設(shè)計模式?設(shè)計模式目標(biāo)是什么?答:設(shè)計模式是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié)。使用設(shè)計模式是為了可重用代碼、讓代碼更容易被他人理解,保證代碼可靠性。2. 設(shè)計模式中一般都遵循的原則有什么?答:開閉原則、根據(jù)場景進(jìn)行設(shè)計原則、優(yōu)先組合原則、包容變化原則3. “Gang of Four”針對“創(chuàng)建優(yōu)秀面向?qū)ο笤O(shè)計”建議了哪些策略?答:針對接口編程、優(yōu)先使用對象組合而不是類繼承,找到并封裝變化點。4. 面向?qū)ο笙到y(tǒng)中功能復(fù)用的兩種最常用技術(shù)是什么?答:類繼承和對象組

5、合,類繼承允許你根據(jù)其他類的實現(xiàn)來定義一個類的實現(xiàn)。父類的內(nèi)部細(xì)節(jié)對子類可見。類繼承是在編譯時刻靜態(tài)定義的,且可直接使用,類繼承可以較方便地改變被復(fù)用的實現(xiàn)。對象組合是類繼承之外的另一種復(fù)用選擇。新的更復(fù)雜的功能可以通過組裝或組合對象來獲得。對象組合要求被組合的對象具有良好定義的接口。5. 只根據(jù)抽象類中定義的接口來操縱對象有什么好處? 答:1) 客戶無須知道他們使用對象的特定類型,只須對象有客戶所期望的接口。 2) 客戶無須知道他們使用的對象是用什么類來實現(xiàn)的,他們只須知道定義接口的抽象類。五、應(yīng)用題(分值15)公司架構(gòu):經(jīng)理、工程師、技師和后勤人員都是公司的雇

6、員,經(jīng)理管理工程師、技師和后勤人員。高層經(jīng)理領(lǐng)導(dǎo)較低級別的經(jīng)理。典型層次圖如下:可以使用哪種設(shè)計模式實現(xiàn)公司的層級關(guān)系?并說明為什么?組合模式,第一,其公司關(guān)系架構(gòu)為樹形結(jié)構(gòu);第二,其表示了部分-整體關(guān)系(自己擴(kuò)展)1. 在觀察者模式中,表述錯誤的是( C )C. 觀察者可以改變被觀察者的狀態(tài),再由被觀察者通知所有觀察者依據(jù)被觀察者的狀態(tài)進(jìn)行。2. 對于違反里式代換原則的兩個類,可以采用的候選解決方案錯誤的是:( D )D. 以上方案錯誤3. 下列模式屬于結(jié)構(gòu)型設(shè)計模式的是( AB )A. Composite B. 享元(Flyweight)模式4. 關(guān)于繼承表述錯誤的是:( D )D. 繼承

7、本質(zhì)上是“白盒復(fù)用”,對父類的修改,不會影響到子類。5. 對于依賴倒轉(zhuǎn)的表述錯誤的是(C)C. 從選項B的角度論述,一個對象可以有多個接口。6. 可以使用哪一種設(shè)計模式限制類的實例唯一?( D )D單體模式7. Java數(shù)據(jù)庫連接庫JDBC用到哪種設(shè)計模式( B )?B.工廠方法8. 關(guān)于運(yùn)用GOF工廠方法的效果Consequences,說法不正確的是(C)有利于產(chǎn)品的一致性8. 在應(yīng)用程序中可用哪些設(shè)計模式分離出算法?( B )B. 策略模式9. 工廠方法也稱為( D )D. 虛構(gòu)造器10. 可以使用哪種設(shè)計模式將抽象和實現(xiàn)解耦,使得抽象和實現(xiàn)可以獨自變化?( B )橋接模式1. 面向?qū)ο蟮?/p>

8、七條基本原則包括:開閉原則,里式代換原則,合成聚合原則以及(迪米特法則 ),(  依賴倒轉(zhuǎn)  ),( 單一原則    ),(  接口隔離  )。2. 在存在繼承關(guān)系的情況下,方法向( 超類 )方向集中,而數(shù)據(jù)向( 子類 )方向集中。3. 適配器模式,分為類的適配器和對象的適配器兩種實現(xiàn)。其中類的適配器采用的是( 繼承  )關(guān)系,而對象適配器采用的是(組合聚合)關(guān)系。4. 設(shè)計模式的四個基

9、本要素是(名字   ),(意圖   ),(問題 )和( 解決方案     )。5. .創(chuàng)建型模式的根本意圖是要把( 對象的創(chuàng)建  )和( 使用分離   )的責(zé)任進(jìn)行分離,從而降低系統(tǒng)的( 耦合度  )。6. 工廠模式分為(簡單工廠 ),( 工廠方法  ),( 抽象工廠 )三種類型。7. 門面模式是( 

10、; 迪米特  )法則的典型運(yùn)用8. MVC模型的基本工作原理是基于(  觀察者   )模式,實現(xiàn)是基于( 命令   )模式9. 設(shè)計模式的思想根源是(開閉 )基本原則的宏觀運(yùn)用,本質(zhì)上是沒有任何模式的,發(fā)現(xiàn)模式的人永遠(yuǎn)是大師,而死守模式的人,最對只能是一個工匠. 1. 在MVC模型中M、V、C分別指什么?簡述它們之間的關(guān)系?M: 模型(Model), V:視圖(View) C:控制Controller)。MVC模式的目的就是實現(xiàn)Web系

11、統(tǒng)的職能分工。 Model層實現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通??梢杂肑avaBean或EJB來實現(xiàn)。 View層用于與用戶的交互,通常用JSP來實現(xiàn)。 Controller層是Model與View之間溝通的橋梁,它可以分派用戶的請求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作。2. 什么是開閉原則?軟件實體應(yīng)當(dāng)對擴(kuò)展開放,對修改關(guān)閉,軟件系統(tǒng)中包含的各種組件,例如模塊(Modules)、類(Classes)以及功能(Functions)等,應(yīng)該在不修改現(xiàn)有代碼的基礎(chǔ)上,引入新功能。開閉原則中“開”,是指對于組件功能的擴(kuò)展

12、是開放的,是允許對其進(jìn)行功能擴(kuò)展的;開閉原則中“閉”,是指對于原有代碼的修改是封閉的,即不應(yīng)該修改原有的代碼。 3.設(shè)計數(shù)據(jù)庫的系統(tǒng)日志,要考慮使用哪些設(shè)計模式?答:命令模式,備忘錄模式,外觀模式4. 使用工廠模式的主要原因是什么?工廠模式定義:提供創(chuàng)建對象的接口. 因為工廠模式就相當(dāng)于創(chuàng)建實例對象的new,我們經(jīng)常要根據(jù)類Class生成實例對象,如A a=new A() 工廠模式也是用來創(chuàng)建實例對象的,所以以后new時就要多個心眼,是否可以考慮使用工廠模式,雖然這樣做,可能多做一些工作,但會給你系統(tǒng)帶來更大的可擴(kuò)展性和盡量少的修改量

13、。5、貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒問:(1)設(shè)計可能用到什么設(shè)計模式?(2)畫出其類圖。 觀察者模式 分析:要有聯(lián)動性,老鼠和主人的行為是被動的;考慮可擴(kuò)展性,貓的叫聲可能引起其他聯(lián)動效應(yīng)。一、 多項選擇題(1)以下是模式的基本要素的是(ABCD)A名稱B意圖C)解決方案D)參與者和協(xié)作者(2)常用的描述設(shè)計模式的格式有(ABCD)A)意圖B)動機(jī)C)適用性D)結(jié)構(gòu)(3)以下哪些問題通過應(yīng)用設(shè)計模式能夠解決(AD)A指定對象的接口D設(shè)計應(yīng)支持變化(4)面向?qū)ο笙到y(tǒng)中功能復(fù)用的最常用技術(shù)是( AB )。A)類繼承B)對象組合(5)常用的基本設(shè)計模式可分為( A )。A)創(chuàng)建型、結(jié)

14、構(gòu)型和行為型(6)以下關(guān)于創(chuàng)建型模式說法正確的是(A )。A)創(chuàng)建型模式關(guān)注的是對象的創(chuàng)建 (7)以下屬于創(chuàng)建型模式的是(AC )。A)抽象工廠(Abstract Factory)模式 C)單例(Singleton)模式(8) ( C )模式是利用一個對象,快速生成一批對象。C)原型(Prototype)模式(9)在不破壞類封裝性的基礎(chǔ)上,使得類可以同不曾估計到的系統(tǒng)進(jìn)行交互。主要體現(xiàn)在( AD )。 A)適配器(Adapter)模式D)橋接(Bridge)模式(10)結(jié)構(gòu)型模式中最體現(xiàn)擴(kuò)展性的幾種模式是( C ) C)裝飾(Decorator)模式(11)行為類模式使用( C )在類間分派行

15、為。C)對象組合 (12)以下屬于行為對象模式的是(ABCD ) A)模板(Template Method)模式 B)迭代器(Iterator)模式C)命令(Command)模式D)觀察者(Observer)模式(13)封裝分布于多個類之間的行為的模式是( C ) C)訪問者(Visitor)模式(14)Observer(觀察者)模式適用于(C)。(C)當(dāng)一個對象必須通知其它對象,而它又不能假定其它對象是誰。也就是說你不希望這些對象是緊耦合的。(15)Java的異常處理機(jī)制可理解為哪一種行為模式( C )。C)職責(zé)鏈(Chain of Responsibility)模式二、 填空題(分值20)

16、1. (單一職責(zé))原則的核心思想是系統(tǒng)中的每一個對象都應(yīng)該只有一個單獨的職責(zé),而所有對象所關(guān)注的就是自身職責(zé)的完成。2. ( 開閉 )原則的核心思想是一個對象對擴(kuò)展開放,對修改關(guān)閉;實現(xiàn)此原則的關(guān)鍵就在于( 抽象 )、分離出( 擴(kuò)展 )部分和( 修改 )部分。3. (里氏替換)原則的核心思想是在任何父類出現(xiàn)的地方都可以用它的子類來替代。4. (依賴倒置)原則的核心思想是要依賴于抽象,而不要依賴于具體的實現(xiàn)。5. (接口隔離)原則的核心思想是不應(yīng)該強(qiáng)迫客戶程序依賴于他們不用的方法。即一個接口不需要提供太多的行為,應(yīng)該只提供一種對外的功能,不應(yīng)該把所有的操作都封裝在一個接口中。6. (迪米特)原則

17、的核心思想是一個對象應(yīng)當(dāng)對其它對象盡可能少的了解。或者說,只和你的朋友說話。這樣一些對象可以看做朋友:當(dāng)前對象本身、通過方法的參數(shù)傳遞進(jìn)來的對象、當(dāng)前對象所創(chuàng)建的對象、當(dāng)前對象的實例變量所引用的對象和方法內(nèi)所創(chuàng)建或者實例化的對象。7. (優(yōu)先使用組合)原則的核心思想是優(yōu)先使用組合而非繼承。8. 設(shè)計模式應(yīng)該面向( 對象 )編程三、 判斷題(分值10)1. 單一職責(zé)原則表現(xiàn)在面向?qū)ο蟮某绦蛑芯褪恰案邇?nèi)聚、低耦合”。(T) 2. 設(shè)計模式只能遵從使用,不能也無需創(chuàng)新。(F)3. 在面向?qū)ο缶幊虝r,無論何時何地都要使用GoF所給出的設(shè)計模式,這樣編寫的代碼才比較好。( F)4. 工廠方法能夠提高內(nèi)聚

18、性,松散耦合,并且有助于測試。( F )5. 對象要么構(gòu)造其它對象,要么使用其它對象,絕不要兩者兼顧。( T )問答題1、單例模式的兩種實現(xiàn)方法,并說明優(yōu)缺點?(1)懶漢式,在類被加載時,唯一的實例已經(jīng)被創(chuàng)建。這個模式在java中很容易實現(xiàn),在其他語言中很難.(2)餓漢式,在類加載的時候不創(chuàng)建單例實體。只有在第一次請求實例的時候創(chuàng)建,并且只在第一次創(chuàng)建后不再創(chuàng)佳該類的實例 2 、什么是對象粒度? 所謂的對象粒度就是對象從抽象到具體的描述的程度。同樣一個系統(tǒng),同樣的需求。兩個設(shè)計師給出兩種設(shè)計。兩個設(shè)計代碼行數(shù)差不多,但是類的數(shù)目不同。例如有一個對象,我可以用10行代碼去構(gòu)造它,我也可以用20行

19、代碼,后者比前者更為精確。3、MVC模式是個復(fù)合模式,請寫出你兩種你所知道的MVC中使用的模式。(1)觀察者模式:定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新。  (2)策略模式:定義了算法族,分別封裝起來,讓他們之間可以相互替換,此模式讓算法的變化獨立于使用算法的客戶。4、舉例說明,適配器模式和裝配器在Java IO中的應(yīng)用。(1裝飾者模式:在由InputStream,OutputStream,Reader和Writer代表的等級結(jié)構(gòu)內(nèi)部,有一些流處理器可以對另一些流處理器起到裝飾作用,形成新的,具有改善了的功能的流處理器。

20、裝飾者模式是Java I/O庫的整體設(shè)計模式。這樣的一個原則是符合裝飾者模式的(2適配器模式:在由InputStream,OutputStream,Reader和Writer代表的等級結(jié)構(gòu)內(nèi)部,有一些流處理器是對其它類型的流源的適配。這就是適配器模式的應(yīng)用,適配器模式應(yīng)用到了原始流處理器的設(shè)計上面,構(gòu)成了I/O庫所有流處理器的起點。5、 在面向?qū)ο蟪绦蛟O(shè)計中,常常需要避免過多case語句或者if語句,請給出一種設(shè)計模式避免過多的條件分支語句,同時指出這種設(shè)計模式如何幫助避免過多的Case語句?訪問者模式。例如switch(pt) case A:  break; c

21、ase B: break; .  1.把每個條件作成一個類,比如 A條件 class A public void accept() /處理邏輯 2、然后把每個條件的處理方法都用一個類來管理. public class CommonVisitor public void visit(A a) a.accept();/其他條件的訪問方法 public void visit(B b) b.accept();3、main里面就這樣調(diào)用就行. public static void main(Stirng args) CommonVisitor

22、visitor = new CommonVisitor();/如果是想用A條件,則 visitor.visit(new A();這樣寫的好處,以后先加條件的話我只需要定義新的條件類就行,還有就是在CommonVisitor添加新條件的訪問方法就行,這樣就很好作到一個條件管理一個邏輯五、應(yīng)用題(分值10)某房地產(chǎn)公司欲開發(fā)一套房產(chǎn)信息管理系統(tǒng),根據(jù)如下描述選擇合適的設(shè)計模式進(jìn)行設(shè)計: (1) 該公司有多種房型,如公寓、別墅等,在將來可能會增加新的房型;(2) 銷售人員每售出一套房子,主管將收到相應(yīng)的銷售消息。如果對上述場景編程,那么上述(1)和(2)可能分別用到哪些設(shè)計模式? 對于描述

23、(1)可以選擇使用工廠方法模式,對于描述(2)可以選擇使用觀察者模式,本題參考類圖如下所示:1. 設(shè)計模式具有的優(yōu)點( A )。A. 適應(yīng)需求變化2. 下圖描述了一種設(shè)計模式(Client),該設(shè)計模式不可以( A )。A. 動態(tài)決定由一組對象中某個對象處理該請求3. 若系統(tǒng)中的某子模塊需要為其它模塊提供訪問不同數(shù)據(jù)庫系統(tǒng)(Oracle、SQL Server、DB2 UDB 等)的功能, ( B )設(shè)計模式可抽象出相同的數(shù)據(jù)庫訪問過程;B. 裝飾 4. 系統(tǒng)中的文本顯示類(TextView)和圖片顯示類(PictureView)都繼承了組件類(Component),但希望最多只增加三個類,(

24、B )設(shè)計模式可以實現(xiàn)該目的。B. 裝飾5. 下面的類圖表示的是哪個模式AbstractFactory( A ) A. 抽象工廠模式6. 下面的類圖表示的是哪個設(shè)計模式Subject( D ) D. 觀察者模式(Observer)7. 下面的類圖表示的是哪個模式Façade( B ) B. 外觀模式(Facade)8. 下面的類圖表明了哪個模式Product( D ) D. 工廠方法模式(Factory Method)9. 下面的類圖表示的是哪個設(shè)計模式Context( D ) D. 狀態(tài)模式(State)10. 下面的類圖表明了哪個模式Singleton( C ) C. 單例模式(

25、Singleton)二、 填空題(分值20)1(工廠方法)模式中,父類負(fù)責(zé)定義創(chuàng)建對象的公共接口,子類則負(fù)責(zé)生成具體的對象。2.(抽象工廠)模式提供一系列相關(guān)或相互依賴對象的接口而無需指定它們具體的類。3(原型)模式用原型實例指定創(chuàng)建對象的種類,并且通過拷貝這些原型實例創(chuàng)建新的對象。4(單例)模式確保某一個類僅有一個實例,并自行實例化并向整個系統(tǒng)提供這個實例。5 (組合)模式將對象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。使得用戶對單個對象和組合對象的使用具有一致性。6 (外觀)模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用,為子系統(tǒng)中的一組接口提供一個一致的界面。7 (享元)

26、模式運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象。8 (責(zé)任鏈)模式使多個對象都有機(jī)會處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系。9 (觀察者)模式定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時, 所有依賴于它的對象都得到通知并被自動更新。10 (模板方法)模式定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。三、簡答題(分值30)關(guān)于設(shè)計模式,請回答:1、 什么是設(shè)計模式?設(shè)計模式的目標(biāo)是什么? (1)、設(shè)計模式是一套被反復(fù)使用,多數(shù)人知曉的,經(jīng)過分類編寫的代碼設(shè)計經(jīng)驗的總結(jié)。(2)、目標(biāo):為了可重用代碼,讓代碼更容易被他人理解,保證代碼可靠性。2、 設(shè)計模式具有哪三大

27、特點? (1)、可重用性,對相同類型問題反復(fù)出現(xiàn),盡管問題的環(huán)境有不同,但解決方案有效。(2)、可傳授性,問題反復(fù)出現(xiàn),解決問題的方案相同,大家都接受該解決方案。(3)、名稱,每個設(shè)計模式都有名稱。3、 GOF 設(shè)計模式常用的有幾種?GOF 設(shè)計模式按照模式的目的可分為哪三類? (1)23中;(2)、結(jié)構(gòu)型,將現(xiàn)存的對象結(jié)合在一起。 行為性,提供一種顯得靈活變化的行為。 創(chuàng)建型,穿件或?qū)嵗瘜ο?、簡述面向?qū)ο蟪绦蛟O(shè)計的六大基本原則? 答:開閉原則、里氏代換原則、依賴倒轉(zhuǎn)原則、合成/聚合復(fù)用原則、迪米特法則、接口隔離原則。2 、簡述什么是單例模式,以及他解決的問題,應(yīng)用的環(huán)境,解決的方案,模式

28、的本質(zhì)?答;在任何時間內(nèi)只有一個類實例存在的模式。需要有一個從中進(jìn)行全局訪問和維護(hù)某種類型數(shù)據(jù)的區(qū)域的環(huán)境下使用單例模式。解決這個問題的辦法是為指示類是否已經(jīng)實例化的變量提供一個互斥鎖。解決方案就是保證一個類只有一個類實例存在。本質(zhì)就是實例共用同一塊內(nèi)存區(qū)域。3、為什么面向?qū)ο蟮姆治龊驮O(shè)計中優(yōu)先使用組合,而非繼承?答: 繼承關(guān)系有很多缺點,如果合理使用組合則可以有效的避免這些缺點,使用組合關(guān)系將系統(tǒng)對變化的適應(yīng)力從靜態(tài)提升到動態(tài),而且由于組合將已有對象組合到了新對象中,因此新對象可以調(diào)用已有對象的功能。由于組合關(guān)系中各個對象的內(nèi)部實現(xiàn)是隱藏的,我們只能通過接口調(diào)用,因此我們完全可以在運(yùn)行期用實

29、現(xiàn)了同樣接口的另外一個對象來代替原對象,從而靈活實現(xiàn)運(yùn)行期的行為控制。而且使用合成關(guān)系有助于保持每個類的職責(zé)的單一性,這樣類的層次體系以及類的規(guī)模都不太可能增長為不可控制的龐然大物。在下面的C+代碼中,類SalesTicket能夠完成打印票據(jù)正文的功能,闡述采用該設(shè)計模式該代碼采用裝飾(Decorator)設(shè)計模式實現(xiàn)。采用該設(shè)計模式的目的能夠動態(tài)地給一個對象增加一些新的職責(zé)不不需要采用生成子類的方法??梢宰尶蛻暨x擇給該類對象附加新的功能的時機(jī)以及是否增加新職責(zé)。比生成子類的方法更為靈活。主任可以審批1 萬元以下的采購單,副董事長可以申批2.5 萬元以下的采購單,董事長可以審批10萬元以下的采

30、購單,10 萬元以上的采購單就需要開會決定。選擇設(shè)計模式并其類圖。責(zé)任鏈模式:一、1. 以動作和事務(wù)聞名,且以對象形式用來封:B命令模式2. 以下不屬于創(chuàng)建型模式是 ( A ) PROXY(代理)3. 以下不屬于結(jié)構(gòu)型模式是 ( D ) D. SINGLETON(單例)4、以下不屬于行為型模式是( D ) MEMENTO(備忘錄)5、以下意圖那個是用來描述BUILDER(生成器)( B ) 將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。6、以下意圖那個是用來描述PROTOTYPE(原型)( D )D. 用原型實例指定創(chuàng)建對象的種類,并通過拷貝這些原型創(chuàng)建新的對象。7

31、、以下意圖那個是用來描述ADAPTER(適配器)( A )將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。本模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。8. 以下意圖那個是用來描述BRIDGE(橋接)( B )B. 將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。9. 以下哪個意圖是用來描述COMPOSITE(組合)?( C ) 將對象組合成樹形結(jié)構(gòu)以表示部分-整體的層次結(jié)構(gòu)。10、以下那個是用來描述DECORATOR(裝飾)( D ) 動態(tài)地給一個對象添加一些額外的職責(zé)。11、以下意圖那個是用來描述 FACADE(外觀)?( A ) 為子系統(tǒng)中的一組接口提供一個一致的界面

32、,本模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。12、以下意圖那個是用來描述FLYWEIGHT(享元)( B )B. 運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象。13、以下意圖那個是用來描述 PROXY(代理)( C )C. 為其他對象提供一種代理以控制對這個對象的訪問。14、以下意圖那個是用來描述CHAIN OF RESPONSIBILITY(職責(zé)鏈)?( D )D.使多個對象都有機(jī)會處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系。15、以下意圖那個是用來描述 COMMAND(命令)( A )A、將一個請求封裝為一個對象;對請求排隊或記錄請求日志,以及支持可撤消的操作1. (命令)模式把一個請求或操作封裝到一個對象中。2. (裝飾)模式封裝一些施加于某種數(shù)據(jù)結(jié)構(gòu)元素之上的操作,這樣修改操作不影響數(shù)據(jù)結(jié)構(gòu)。3. (外觀)模式為子系統(tǒng)對外提供的一組接口提供一個統(tǒng)一的界面。4. (策略)模式針對一組算法,將每一個算法封裝到具有共同接口的獨立的類中,從而使算法可相互替換。5. (觀察者)模式讓多個對象同時監(jiān)聽某一個主題對象,主題對象的變化會通知監(jiān)聽對象,使得監(jiān)聽對象可以自動更新。6. (適配器)模式把一個類的接口變換成客戶端所期待的另一種接口。7. (訪問者)模式以對客戶端透明方式擴(kuò)展對象的功能。8. (簡單工廠)模式定義一個具體的工廠類來負(fù)責(zé)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論