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

下載本文檔

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

文檔簡介

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

2、式的是(B ) B 觀察者. “不要和陌生人說話”是(D ) 原則的通俗表述 D.迪米特.軟件體系結(jié)構(gòu)是指一個(gè)系統(tǒng)的有目的的設(shè)計(jì)和規(guī)劃,這個(gè)設(shè)計(jì)規(guī)劃既不描述活動(dòng),也不描述系統(tǒng)怎樣開發(fā),它只描述系統(tǒng)的組成元素及其相互的交互協(xié)作 。. 一個(gè)UML莫型只描述了一個(gè)系統(tǒng)要做什么 ,它并沒告訴我們系統(tǒng)是 怎么做 。.接口是可以在整個(gè)模型中反復(fù)使用的一組行為,是一個(gè)沒有屬性 而只有 方法 的類。.多重性指的是,某個(gè)類有多 個(gè)對象可以和另一個(gè)類的一 對象關(guān)聯(lián)。.當(dāng)一個(gè)類的對象可以充當(dāng)多種角色時(shí),自身關(guān)聯(lián)就可能發(fā)生。.在泛化關(guān)系中,子類 可以替代 父類。后前者出現(xiàn)的可以相同地方。反過來卻不成立。.最通常的依賴

3、關(guān)系是一個(gè)類操作的形構(gòu)中用到了另一個(gè)類 的定義。.組成是 強(qiáng)類型 的聚集,因?yàn)榫奂械拿總€(gè)部分體只能屬于一個(gè) 整體。.實(shí)現(xiàn)的符號和繼承的符號有相似之處,兩者的唯一差別是實(shí)現(xiàn)關(guān)系用虛線表示,繼承關(guān)系用 實(shí)線表示。.設(shè)計(jì)模式中應(yīng)優(yōu)先使用對象組合而不是 類繼承。.適配器模式屬于創(chuàng)建型模式結(jié)構(gòu)型( F ) TOC o 1-5 h z .在設(shè)計(jì)模式中,“效果”只是指“原因和結(jié)果”(T ).設(shè)計(jì)模式使代碼編制不能真正工程化(T ).面向?qū)ο笳Z言編程中的異常處理,可以理解為責(zé)任鏈模式( T ).反模式就是反對在軟件開發(fā)過程中使用設(shè)計(jì)模式分析:反模式用來解決問題的帶有共性的不良方法(F ).什么是設(shè)計(jì)模式?設(shè)

4、計(jì)模式目標(biāo)是什么?答:設(shè)計(jì)模式是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解,保證代碼可靠性。.設(shè)計(jì)模式中一般都遵循的原則有什么?答:開閉原則、根據(jù)場景進(jìn)行設(shè)計(jì)原則、優(yōu)先組合原則、包容變化原則.“Gang of Four 針對創(chuàng)建優(yōu)秀面向?qū)ο笤O(shè)計(jì)”建議了哪些策略?答:針對接口編程、優(yōu)先使用對象組合而不是類繼承,找到并封裝變化點(diǎn)。.面向?qū)ο笙到y(tǒng)中功能復(fù)用的兩種最常用技術(shù)是什么?答:類繼承和對象組合,類繼承允許你根據(jù)其他類的實(shí)現(xiàn)來定義一個(gè)類的實(shí)現(xiàn)。父類的內(nèi)部細(xì)節(jié)對子類可見。 類繼承是在編譯時(shí)刻靜態(tài)定義的,且可直接使用,類繼承

5、可以較方便地改變被復(fù)用的實(shí)現(xiàn)。對象組合是類繼承 之外的另一種復(fù)用選擇。新的更復(fù)雜的功能可以通過組裝或組合對象來獲得。對象組合要求被組合的對象具有 良好定義的接口。.只根據(jù)抽象類中定義的接口來操縱對象有什么好處?答:1)客戶無須知道他們使用對象的特定類型,只須對象有客戶所期望的接口。2)客戶無須知道他們使用的對象是用什么類來實(shí)現(xiàn)的,他們只須知道定義接口的抽象類。五、應(yīng)用題(分值 15)公司架構(gòu):經(jīng)理、工程師、技師和后勤人員都是公司的雇員,經(jīng)理管理工程師、技師和后勤人員。高層經(jīng)理領(lǐng)導(dǎo)較低級別的經(jīng)理。典型層次圖如下:可以使用哪種設(shè)計(jì)模式實(shí)現(xiàn)公司的層級關(guān)系?并說明為什么?組合模式,第一,其公司關(guān)系架構(gòu)

6、為樹形結(jié)構(gòu);第二,其表示了部分-整體關(guān)系(自己擴(kuò)展)word格式資料.在觀察者模式中,表述錯(cuò)誤的是( C ) C.觀察者可以改變被觀察者的狀態(tài),再由被觀察者通知所有觀察者依 據(jù)被觀察者的狀態(tài)進(jìn)行。.對于違反里式代換原則的兩個(gè)類,可以采用的候選解決方案錯(cuò)誤的是:(D ) D.以上方案錯(cuò)誤.下列模式屬于結(jié)構(gòu)型設(shè)計(jì)模式的是( AB ) A. Composite B. 享元(Flyweight )模式.關(guān)于繼承表述錯(cuò)誤的是:( D ) D.繼承本質(zhì)上是“白盒復(fù)用”,對父類的修改,不會影響到子類。.對于依賴倒轉(zhuǎn)的表述錯(cuò)誤的是(C) C.從選項(xiàng)B的角度論述,一個(gè)對象可以有多個(gè)接口。.可以使用哪一種設(shè)計(jì)模式

7、限制類的實(shí)例唯一? ( D ) D.單體模式. Java數(shù)據(jù)庫連接庫JDBC用到哪種設(shè)計(jì)模式(B ) ? B.工廠方法.關(guān)于運(yùn)用GOB!廠方法的效果Consequences ,說法不正確的是(C)有利于產(chǎn)品的一致性.在應(yīng)用程序中可用哪些設(shè)計(jì)模式分離出算法? ( B ) B.策略模式工廠方法也稱為(D ) D.虛構(gòu)造器.可以使用哪種設(shè)計(jì)模式將抽象和實(shí)現(xiàn)解耦,使得抽象和實(shí)現(xiàn)可以獨(dú)自變化? (B )橋接模式.面向?qū)ο蟮钠邨l基本原則包括:開閉原則,里式代換原則,合成聚合原則以及(迪米特法則),( 依賴倒轉(zhuǎn) ),(單一原則),( 接口隔離 )。.在存在繼承關(guān)系的情況下,方法向( 超類)方向集中,而數(shù)據(jù)向

8、( 子類)方向集中。.適配器模式,分為類的適配器和對象的適配器兩種實(shí)現(xiàn)。其中類的適配器采用的是(繼承 )關(guān)系,而對象適配器采用的是(組合聚合)關(guān)系。.設(shè)計(jì)模式的四個(gè)基本要素是(名字),(意圖 ),(問題 )和( 解決方案)。建型模式的根本意圖是要把(對象的創(chuàng)建)和(使用分離)的責(zé)任進(jìn)行分離,從而降低系統(tǒng)的(耦合度 )。.工廠模式分為(簡單工廠),(工廠方法 ),(抽象工廠)三種類型。.門面模式是( 迪米特 )法則的典型運(yùn)用. MVC模型的基本工作原理是基于 ( 觀察者)模式,實(shí)現(xiàn)是基于( 命令 )模式.設(shè)計(jì)模式的思想根源是(開閉)基本原則的宏觀運(yùn)用,本質(zhì)上是沒有任何模式的,發(fā)現(xiàn)模式的人永遠(yuǎn)是大

9、師,而 死守模式的人,最對只能是一個(gè)工匠.在MVC莫型中M V、C分別指什么?簡述它們之間的關(guān)系?M: 模型(Model), V: 視圖(View) C:控制 Controller) 。MVC模式的目的就是實(shí)現(xiàn) Web系統(tǒng)的職能分工。Model層實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通??梢杂肑avaBean或EJB來實(shí)現(xiàn)。View層用于與用戶的交互,通常用JSP來實(shí)現(xiàn)。Controller層是Model與View之間溝通的橋梁,它可以分派用戶的請求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時(shí)它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作。.什么是開閉原則?軟件實(shí)體應(yīng)當(dāng)對擴(kuò)展開放,對修改關(guān)閉,軟件系統(tǒng)中包含的各種

10、組件,例如模塊(Modules)、類(Classes )以及功能(Functions )等,應(yīng)該在不修改現(xiàn)有代碼的基礎(chǔ)上,引入新功能。開閉原則中“開”,是指對于組件功能的 擴(kuò)展是開放的,是允許對其進(jìn)行功能擴(kuò)展的;開閉原則中“閉”,是指對于原有代碼的修改是封閉的,即不應(yīng)該修 改原有的代碼。.設(shè)計(jì)數(shù)據(jù)庫的系統(tǒng)日志,要考慮使用哪些設(shè)計(jì)模式?答:命令模式,備忘錄模式,外觀模式.使用工廠模式的主要原因是什么?工廠模式定義:提供創(chuàng)建對象的接口 .因?yàn)楣S模式就相當(dāng)于創(chuàng)建實(shí)例對象的new,我們經(jīng)常要根據(jù)類 Class生成實(shí)例對象,如 A a=new A() 工廠模式也是用來創(chuàng)建實(shí)例對象的,所以以后new時(shí)就

11、要多個(gè)心眼,是否可以考慮使用工廠模式,雖然這樣做,可能多做一些工作,但會給你系統(tǒng)帶來更大的可擴(kuò)展性和盡量少的修改量。word格式資料5、貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒問:(1)設(shè)計(jì)可能用到什么設(shè)計(jì)模式?(2)畫出其類圖。觀察者模式分析:要有聯(lián)動(dòng)性,老鼠和主人的行為是被動(dòng)的;考慮可擴(kuò)展性,貓的叫聲可能引起其他聯(lián)動(dòng)效應(yīng)。MouseMaster-name string name siring+ Mouse (String name. Subject subject)+ response 0: void+ Master (String name. Subject subject)+ re

12、sponse Q: voidlist ArrayUstCat()addOt)sen/er(Observer obs) voidcryo: void一、多項(xiàng)選擇題(1)以下是模式的基本要素的是( ABCD A名稱B意圖。解決方案D)參與者和協(xié)作者(2)常用的描述設(shè)計(jì)模式的格式有( ABCD A)意圖B)動(dòng)機(jī)C)適用性D)結(jié)構(gòu)(3)以下哪些問題通過應(yīng)用設(shè)計(jì)模式能夠解決(AD) A指定對象的接口 D設(shè)計(jì)應(yīng)支持變化(4)面向?qū)ο笙到y(tǒng)中功能復(fù)用的最常用技術(shù)是( AB )。A)類繼承B)對象組合(5)常用的基本設(shè)計(jì)模式可分為( A )。A)創(chuàng)建型、結(jié)構(gòu)型和行為型(6)以下關(guān)于創(chuàng)建型模式說法正確的是( A

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

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

15、應(yīng)該只有一個(gè)單獨(dú)的職責(zé),而所有對象所關(guān)注的就是自身職責(zé)的完成。(開閉)原則的核心思想是一個(gè)對象對擴(kuò)展開放,對修改關(guān)閉;實(shí)現(xiàn)此原則的關(guān)鍵就在于(抽象)、分離出( 擴(kuò)展)部分和( 修改 )部分。(里氏替換)原則的核心思想是在任何父類出現(xiàn)的地方都可以用它的子類來替代。(依賴倒置)原則的核心思想是要依賴于抽象,而不要依賴于具體的實(shí)現(xiàn)。(接口隔離)原則的核心思想是不應(yīng)該強(qiáng)迫客戶程序依賴于他們不用的方法。即一個(gè)接口不需要提供太多的行為,應(yīng)該只提供一種對外的功能,不應(yīng)該把所有的操作都封裝在一個(gè)接口中。(迪米特)原則的核心思想是一個(gè)對象應(yīng)當(dāng)對其它對象盡可能少的了解。或者說,只和你的朋友說話。這樣一word格式

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

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

18、。(1)觀察者模式:定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個(gè)對象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對象 都得到通知并被自動(dòng)更新。(2)策略模式:定義了算法族,分別封裝起來,讓他們之間可以相互替換,此模式讓算法的變化獨(dú)立于使用 算法的客戶。4、舉例說明,適配器模式和裝配器在Java IO中的應(yīng)用。(1裝飾者模式:在由 InputStream , OutputStream,Reader 和 Writer代表的等級結(jié)構(gòu)內(nèi)部,有一些流處理器可以 對另一些流處理器起到裝飾作用,形成新的,具有改善了的功能的流處理器。裝飾者模式是Java I/O 庫的整體設(shè)計(jì)模式。這樣的一個(gè)原則是符合裝飾者模式的(2適配器模

19、式:在由InputStream , OutputStream,Reader和Writer代表的等級結(jié)構(gòu)內(nèi)部,有一些流處理器是對其它類型的流源的適配。這就是適配器模式的應(yīng)用,適配器*II式應(yīng)用到了原始流處理器的設(shè)計(jì)上面,構(gòu)成了I/O庫所有流處理器的起點(diǎn)。5、在面向?qū)ο蟪绦蛟O(shè)計(jì)中,常常需要避免過多case語句或者if語句,請給出一種設(shè)計(jì)模式避免過多的條件分支語句,同時(shí)指出這種設(shè)計(jì)模式如何幫助避免過多的Case語句?訪問者模式。例如switch(pt) case A:break; case B: break; .1.把每個(gè)條件作成一個(gè)類,比如A條件class A public void accept

20、() /處理邏輯 2、然后把每個(gè)條件的處理方法都用一個(gè)類來管理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 visitor = new CommonVisitor();/如果是想用 A條件,則visitor.visit(new A();這樣寫白好處,以后先加條件的話我只需要定義新的條件類就行,還有就是

21、在CommonVisitor添加新條件的訪問方法word格式資料就行,這樣就很好作到一個(gè)條件管理一個(gè)邏輯五、應(yīng)用題(分值 10)某房地產(chǎn)公司欲開發(fā)一套房產(chǎn)信息管理系統(tǒng),根據(jù)如下描述選擇合適的設(shè)計(jì)模式進(jìn)行設(shè)計(jì):(1)該公司有多種房型,如公寓、別墅等,在將來可能會增加新的房型;(2)銷售人員每售出一套房子,主管將收到相應(yīng)的銷售消息。如果對上述場景編程,那么上述(1)和(2)可能分別用到哪些設(shè)計(jì)模式?對于描述(1)可以選擇使用工廠方法模式,對于描述 可以選擇使用觀察者模式,本題參考類圖如 下所示:u idP pnceHoieString double# status 牖# stakeholdefs

22、List_ + $etStatus (mi status)wtd + addGak前&def 停自出用der 如 void+ response (Hotiae house i voidihi statu?-status.苗招主告fonOsjw:ooj stakehoders)MeagerVillad&mCreatofApartmenlC(eator* creafeHww ( House* creaieHouse Q Hou 零 ho雌驊蝌+,己里出“肺隹燈*house getweQ).reluenriew VitadomO.HouseCreaictllEUllftr tM* createHou

23、$e (i Hoose.設(shè)計(jì)模式具有的優(yōu)點(diǎn)(A )。A.適應(yīng)需求變化.下圖描述了一種設(shè)計(jì)模式(Client ),該設(shè)計(jì)模式不可以(A ) 。A.動(dòng)態(tài)決定由一組對象中某個(gè)對象處理該 請求.若系統(tǒng)中的某子模塊需要為其它模塊提供訪問不同數(shù)據(jù)庫系統(tǒng)( Oracle、SQL Server、DB2 UDB等)的功能,(B )設(shè)計(jì)模式可抽象出相同的數(shù)據(jù)庫訪問過程;B.裝飾.系統(tǒng)中的文本顯示類(TextView )和圖片顯示類(PictureView )都繼承了組件類(Component),但希望最多 只增加三個(gè)類,(B )設(shè)計(jì)模式可以實(shí)現(xiàn)該目的。B.裝飾.下面的類圖表示的是哪個(gè)模式AbstractFacto

24、ry( A ) A.抽象工廠模式.下面的類圖表示的是哪個(gè)設(shè)計(jì)模式Subject( D ) D.觀察者模式(Observer).下面的類圖表示的是哪個(gè)模式Fa?ade( B ) B.外觀模式(Facade).下面的類圖表明了哪個(gè)模式Product( D ) D.工廠方法模式(Factory Method ).下面的類圖表示的是哪個(gè)設(shè)計(jì)模式Context( D ) D.狀態(tài)模式(State). 下面的類圖表明了哪個(gè)模式Singleton( C ) C. 單例模式(Singleton)二、填空題(分值20).(工廠方法)模式中,父類負(fù)責(zé)定義創(chuàng)建對象的公共接口,子類則負(fù)責(zé)生成具體的對象。.(抽象工廠)

25、模式提供一系列相關(guān)或相互依賴對象的接口而無需指定它們具體的類。(原型)模式用原型實(shí)例指定創(chuàng)建對象的種類,并且通過拷貝這些原型實(shí)例創(chuàng)建新的對象。word格式資料.(單例)模式確保某一個(gè)類僅有一個(gè)實(shí)例,并自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。.(組合)模式將對象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。使得用戶對單個(gè)對象和組合對象的使用具有一致性。.(外觀)模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用,為子系統(tǒng)中的一組接口提供一個(gè) 一致的界面。.(享元)模式運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象。.(責(zé)任鏈)模式使多個(gè)對象都有機(jī)會處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系

26、。.(觀察者)模式定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個(gè)對象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對象都得到通知并被自動(dòng)更新。.(模板方法)模式定義一個(gè)操作中的算法的骨架,而將一些步驟延遲到子類中。三、簡答題(分值 30)關(guān)于設(shè)計(jì)模式,請回答:1、什么是設(shè)計(jì)模式?設(shè)計(jì)模式的目標(biāo)是什么?(1)、設(shè)計(jì)模式是一套被反復(fù)使用,多數(shù)人知曉的,經(jīng)過分類編寫的代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。(2)、目標(biāo):為了可重用代碼,讓代碼更容易被他人理解,保證代碼可靠性。2、設(shè)計(jì)模式具有哪三大特點(diǎn)?(1)、可重用性,對相同類型問題反復(fù)出現(xiàn),盡管問題的環(huán)境有不同,但解決方案有效。(2)、可傳授性,問題反復(fù)出現(xiàn),解決問題的方案相同,大家都

27、接受該解決方案。(3)、名稱,每個(gè)設(shè)計(jì)模式都有名稱。3、GOF設(shè)計(jì)模式常用的有幾種? GOF設(shè)計(jì)模式按照模式的目的可分為哪三類?23中;(2)、結(jié)構(gòu)型,將現(xiàn)存的對象結(jié)合在一起。行為性,提供一種顯得靈活變化的行為。創(chuàng)建型,穿件或?qū)嵗瘜ο?、簡述面向?qū)ο蟪绦蛟O(shè)計(jì)的六大基本原則?答:開閉原則、里氏代換原則、依賴倒轉(zhuǎn)原則、合成/聚合復(fù)用原則、迪米特法則、接口隔離原則。2、簡述什么是單例模式,以及他解決的問題,應(yīng)用的環(huán)境,解決的方案,模式的本質(zhì)?答;在任何時(shí)間內(nèi)只有一個(gè)類實(shí)例存在的模式。需要有一個(gè)從中進(jìn)行全局訪問和維護(hù)某種類型數(shù)據(jù)的區(qū)域的環(huán)境下使用單例模式。解決這個(gè)問題的辦法是為指示類是否已經(jīng)實(shí)例化的

28、變量提供一個(gè)互斥鎖。解決方案就是保證一個(gè)類 只有一個(gè)類實(shí)例存在。本質(zhì)就是實(shí)例共用同一塊內(nèi)存區(qū)域。3、為什么面向?qū)ο蟮姆治龊驮O(shè)計(jì)中優(yōu)先使用組合,而非繼承?答:繼承關(guān)系有很多缺點(diǎn),如果合理使用組合則可以有效的避免這些缺點(diǎn),使用組合關(guān)系將系統(tǒng)對變化的適應(yīng)力 從靜態(tài)提升到動(dòng)態(tài),而且由于組合將已有對象組合到了新對象中,因此新對象可以調(diào)用已有對象的功能。由于組合 關(guān)系中各個(gè)對象的內(nèi)部實(shí)現(xiàn)是隱藏的,我們只能通過接口調(diào)用,因此我們完全可以在運(yùn)行期用實(shí)現(xiàn)了同樣接口的另 外一個(gè)對象來代替原對象, 從而靈活實(shí)現(xiàn)運(yùn)行期的行為控制。而且使用合成關(guān)系有助于保持每個(gè)類的職責(zé)的單一性,這樣類的層次體系以及類的規(guī)模都不太可能增

29、長為不可控制的龐然大物。在下面的C+弋碼中,類SalesTicket能夠完成打印票據(jù)正文的功能,闡述采用該設(shè)計(jì)模式該代碼采用裝飾(Decorator)設(shè)計(jì)模式實(shí)現(xiàn)。采用該設(shè)計(jì)模式的目的能夠動(dòng)態(tài)地給一個(gè)對象增加一些新的職責(zé) 不不需要采用生成子類的方法。可以讓客戶選擇給該類對象附加新的功能的時(shí)機(jī)以及是否增加新職責(zé)。比生成子類 的方法更為靈活。主任可以審批1萬元以下的采購單,副董事長可以申批2.5萬元以下的采購單,董事長可以審批10萬元以下的采購單,10萬元以上的采購單就需要開會決定。選擇設(shè)計(jì)模式并其類圖。責(zé)任鏈模式:word格式資料successordDirectorV icePresideniP

30、residenttViccPresidcntO十 PrNdcnU)+P 門,ccssRcqucv。-X-.-M-ft-MfPru chiie RequestAppniVijr-name : stringd :,-Dircctor)-Proccs-xReq licsi()-Jill- 11一降1,I4 Appro vert) SetSiK ccs sort) +Pixlvs Request!)-propcrtyATT)0unt; double pnjpertyIJurpijse : siring -prpertyJumher: int.以動(dòng)作和事務(wù)聞名,且以對象形式用來封:B.命令模式3.以下不

31、屬于結(jié)構(gòu)型模式是4、以下不屬于行為型模式是(D ) D. SINGLETON( 單例)(D ) MEMENTO (備忘錄).以下不屬于創(chuàng)建型模式是 (A ) PROXY(代理)5、以下意圖那個(gè)是用來描述 程可以創(chuàng)建不同的表示。6、以下意圖那個(gè)是用來描述BUILDER (生成器)PROTOTYP 明 型)(B )將一個(gè)復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過(D )D.用原型實(shí)例指定創(chuàng)建對象的種類,并通過拷貝這些原型創(chuàng)建新的對象。7、以下意圖那個(gè)是用來描述ADAPTER適配器)(A )將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。本模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作

32、。8.以下意圖那個(gè)是用來描述 BRIDGE(橋接)(B )B.將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。9.以下哪個(gè)意圖是用來描述 COMPOSIT E組合)?( C ) 將對象組合成樹形Z構(gòu)以表示部分-整體的層次結(jié)構(gòu)。10、以下那個(gè)是用來描述 DECORATO咪飾)(D ) 動(dòng)態(tài)地給一個(gè)對象添加一些額外的職責(zé)。11、以下意圖那個(gè)是用來描述 FACADE (外觀)?( A )為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,本模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。12、以下意圖那個(gè)是用來描述FLYWEIGHT享元)(B )B. 運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象。1

33、3、以下意圖那個(gè)是用來描述PROXY(代理)(C )C.為其他對象提供一種代理以控制對這個(gè)對象的訪問。14、以下意圖那個(gè)是用來描述CHAIN OFRESPONSIBILITY(職責(zé)鏈)?( D )D.使多個(gè)對象都有機(jī)會處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系。15、以下意圖那個(gè)是用來描述COMMAND命令)(A )A 、將一個(gè)請求封裝為一個(gè)對象;對請求排隊(duì)或記錄請求日志,以及支持可撤消的操作.(命令)模式把一個(gè)請求或操作封裝到一個(gè)對象中。.(裝飾)模式封裝一些施加于某種數(shù)據(jù)結(jié)構(gòu)元素之上的操作,這樣修改操作不影響數(shù)據(jù)結(jié)構(gòu)。.(外觀)模式為子系統(tǒng)對外提供的一組接口提供一個(gè)統(tǒng)一的界面。.(策略)模式針對一組算法,將每一個(gè)算法封裝到具有共同接口的獨(dú)立的類中,從而使算法可相互替換。.(觀察者)模式讓多個(gè)對象同時(shí)監(jiān)聽某一個(gè)主題對象,主題對象的變化會通知監(jiān)聽對象,使得監(jiān)聽對象可以自 動(dòng)更新。word格式資料.(適配器)模式把一個(gè)類的接口變換成客戶端所期待的另一種接口。.(訪問者)模式以對客戶端透明方式擴(kuò)展對象的功能。.(簡單工廠)模式定義一個(gè)具體的工廠類來負(fù)責(zé)創(chuàng)建一些類的實(shí)例,而這些被創(chuàng)建的類應(yīng)有一個(gè)共同的父類。.(工廠方法)模式定義一個(gè)用于創(chuàng)建對象的接口,讓子類決定實(shí)例化哪一個(gè)類,從而使一個(gè)類實(shí)例化延遲到

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論