設(shè)計模式簡答題_第1頁
設(shè)計模式簡答題_第2頁
設(shè)計模式簡答題_第3頁
設(shè)計模式簡答題_第4頁
設(shè)計模式簡答題_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1什么是設(shè)計模式?設(shè)計模式的目標是什么?答: 設(shè)計模式通常是對于某一類的軟件設(shè)計問題的可重用的解決方案,將設(shè)計模式引入軟件設(shè)計和開發(fā)過程,其目的就在于要充分利用已有的軟件開發(fā)經(jīng)驗。2設(shè)計模式具有哪三大特點?答: (1) 在特定的場景下有可重用性,對相同類型不同問題的環(huán)境,其解決方案都有效。(2) 可傳授性,即問題出現(xiàn)的機會很多,解決問題的方案相同,人們相對可以接受。(3) 有表示模式的名稱。3GOF 設(shè)計模式常用的有幾種?GOF 設(shè)計模式按照模式的目的可分為哪三類?答: 行為型,結(jié)構(gòu)型,創(chuàng)建型4畫出抽象工廠方法類圖(這類題自己看書去。)5.針對接口編程,不針對實現(xiàn)編程的意義。答: 主題與觀察者

2、都是用接口:觀察者利用主題的接口向主題注冊,而主題利用觀察者接口通知觀察者。這樣可以讓兩者之間運作正常,又同時具有松耦合的優(yōu)點。6.面向?qū)ο螅∣O)的原則有:答: 1. 封裝變化 2. 多用組合,少用繼承 3. 針對接口編程,不針對實現(xiàn)編程 4. 為交互對象之間的松耦合設(shè)計而努力 5. 對擴展開放,對修改關(guān)閉 6. 依賴抽象,不要依賴具體類 7. 只和朋友交談 8. 別找我,我會找你 9. 類應(yīng)該只有一個改變的理由 7. 耦合分為幾種?(1) 內(nèi)容耦合 (2) 公共耦合 (3) 外部耦合 (4) 控制耦合(5) 標記耦合 (6) 數(shù)據(jù)耦合 (7) 非直接耦合8.GOF模式分為幾種,每種包含哪些

3、模式?答:分為3種。創(chuàng)建型設(shè)計模式:簡單工廠模式,工廠方法模式,抽象工廠模式,建造者模式,原型模式,單例模式;結(jié)構(gòu)型設(shè)計模式:適配器模式,橋接模式,組合模式,裝飾模式,外觀模式,輕量級模式,代理模式;行為性設(shè)計模式:責(zé)任鏈模式,命令模式,解釋器模式,迭代器模式,中介者模式,備忘錄模式,觀察者模式,狀態(tài)模式,策略者模式,模板方法模式,訪問者模式。1不要和陌生人說話” 是(D)原則的通俗表述 A接口隔離 B里氏代換 C依賴倒轉(zhuǎn) D迪米特 2當一個抽象模型有兩個方面,其中一個方面依賴于另一方面,將這兩者封裝在獨立的對象中以使它們可以各自獨立地改變和復(fù)用,可以考慮使用(A) A觀察者模式 B命令模式

4、C適配器模式 D單例模式 3對于某些類來說,只有一個實例是非常重要的,例如,系統(tǒng)中可以有都種類型的打印機,但是只能有一個打印機假脫機,只應(yīng)該一個文件系統(tǒng)和一個窗口管理器,為此,可以使用(C)。 A工廠模式 B享元模式 C單例模式 D外觀模式 4當需要支持日志修改時,可以考慮使用(A ) A命令模式 B工廠模式 C單例模式 D適配器模式 5當需要在不同時刻指定、排列和執(zhí)行請求是,可以考慮使用(A)。 A命令模式 B策略模式 C適配器模式 D責(zé)任鏈模式 6在需要構(gòu)建一個層次結(jié)構(gòu)的子系統(tǒng)時,可以使用門面模式定義子系統(tǒng)中每層的入口點,可以考慮使用(A)。 A外觀模式 B工廠模式 C裝飾模式 D適配器模

5、式 7希望創(chuàng)建一個可復(fù)用的類,該類必須能夠與接口不可預(yù)訂的類協(xié)同工作,可以考慮使用(B) A橋接模式 B適配器模式 C工廠模式 D裝飾模式 8在面向?qū)ο蟮脑瓌t中,(B)表示使用多個專門的接口比使用單一的總接口要好,一個類對另一個來的依賴性應(yīng)當是建立在最小的接口上的。 A單一責(zé)任原則 B接口隔離原則 C依賴倒轉(zhuǎn)原則 D迪米特原則 9當需要強調(diào)一系列相關(guān)產(chǎn)品對象的設(shè)計以便進行聯(lián)合使用,可以考慮使用(A)。 A工廠模式 B單例模式 C建造者模式 D原型模式 10當客戶程序與抽象類的實現(xiàn)部分之間存在很大的依賴性時,可以考慮使用(D) A單例模式 B享元模式 C工廠模式 D外觀模式 11在設(shè)計模式中,(

6、D)保證每個類只要單個實例。 A工廠模式 B外觀模式 C享元模式 D單例模式 12(C)是指以設(shè)計復(fù)用為目的,采用一種良好定義、正規(guī)的、一致的方式記錄的軟件設(shè)計經(jīng)驗。 A架構(gòu) BUML模型 C設(shè)計模式 D設(shè)計數(shù)據(jù) 13在面向?qū)ο蟮牡脑O(shè)計原則中,(A)表示高層模塊不應(yīng)該依賴于低層模塊,都應(yīng)該依賴于抽象,抽象不應(yīng)該依賴于細節(jié),細節(jié)應(yīng)該依賴于抽象。 A依賴倒轉(zhuǎn)原則 B開放封閉原則 C迪米特原則 D里氏替換原則 14(A)將整個軟件系統(tǒng)劃分為模型、視圖和控制器三個部分。 AMVC B分層模式 C管道模式 D架構(gòu)模式 15在面向?qū)ο蟮脑O(shè)計原則中,(B)表示軟件實體應(yīng)當對擴展開放,對修改關(guān)閉,即軟件實體應(yīng)

7、當在不修改的前提下擴展。 A單一責(zé)任原則 B開放封閉原則 C里氏替換原則 D迪米特原則 16在設(shè)計模式中,(C)的核心是緩存和共享 A門面模式 B工廠模式 C享元模式 D單例模式 17關(guān)于適配器模式(Adapter)說法正確的是 A A將抽象部分與實現(xiàn)部分分離,使得它們兩部分可以獨立地變化 B將一個接口轉(zhuǎn)換成為客戶想要的另一個接口。 C組合多個對象形成樹形結(jié)構(gòu)以表示整體-部分的結(jié)構(gòu)層次。其對單個對象和組合對象的使用具有一致性。 D為其他對象提供一個代理或地方以控制對這個對象的訪問。 18迭代器模式(Iterator)模式適用于 B A需要在不同的時間創(chuàng)建請求,生成請求隊列,執(zhí)行請求。 B需要遍

8、歷訪問聚集中的對象而不能暴露聚集中內(nèi)部結(jié)構(gòu)。 C想避免抽象方法和其實現(xiàn)方法綁定在一起。 D一組對象復(fù)雜地相互通信但其方法是定義明確的。 19請說出以下是運用何種設(shè)計模式 A abstract class Chess public abstract void Display(); class BlackChess : Chess public override void Display() Console.WriteLine(黑棋); class ChessFactory public Hashtable chesses = new Hashtable(); public Chess GetCh

9、ess(string key) Chess chess = (Chess)chesseskey; if (chess = null) switch (key) case 黑: chess = new BlackChess(); break; case 白: chess = new WhiteChess(); break; chesses.Add(key, chess); return chess; A享元模式(Flyweight) B工廠模式(Factory) C備忘錄模式(Memento) D組合模式(Composite) 20以下哪種設(shè)計模式最符合以下場景說明: 【軍情的傳遞】 軍隊中軍情

10、的傳遞就是一個責(zé)任鏈,下屬行動需要上級批準,所以要把行動計劃報給上級,上級又傳給上級,直至有人可以決定。一個士兵請求進入反恐行動組,他就會給班長發(fā)送請求,班長給排長,排長給連長,這樣一直傳到軍長,由軍長進行批準。 A橋接模式(Bridge) B外觀模式(Facade) C命令模式(Command) D責(zé)任鏈模式(Chain of Responsibility) 21以下哪種設(shè)計模式最符合以下場景說明: D 【電視節(jié)目選擇器】 電視提供了(creates)面板和遙控器兩種節(jié)目選擇方法,都具有“下一個”和“上一個”按鈕來控制轉(zhuǎn)到不同的頻道。 A責(zé)任鏈模式(Chain of Responsibili

11、ty) B觀察者模式(Observer) C模板方法模式(Template Method) D迭代器模式(Iterator) 22以下哪種設(shè)計模式能夠支持動態(tài)地給一個對象增加其他職責(zé)而且在職責(zé)整合時支持熱插拔 B A橋接模式(Bridge) B裝飾模式(Decorator) C享元模式(Flyweight) D外觀模式(Facade) 23關(guān)于設(shè)計模式本質(zhì)的說法,以下哪個是正確的 C A設(shè)計模式利用類的繼承來實現(xiàn)功能擴展 B設(shè)計模式利用類的組合來實現(xiàn)功能擴展 C設(shè)計模式就是在不修改原有類的基礎(chǔ)上通過新增類來實現(xiàn)功能擴展或功能變更 D設(shè)計模式就是利用類的繼承和組合來實現(xiàn)功能擴展或功能變更 24請

12、說出以下是運用何種設(shè)計模式 D abstract class AbstractFactory public static AbstractFactory CreateFactory(string type) AbstractFactory factory = null; switch (type) case Bmw: factory = new BmwFactory(); break; case Audi: factory = new AudiFactory(); break; return factory; public abstract AbstractSportsCar CreateSp

13、ortsCar(); public abstract AbstractBussinessCar CreateBussinessCar(); class BmwFactory : AbstractFactory public override AbstractSportsCar CreateSportsCar() return new Bmw.BmwSportsCar(); public override AbstractBussinessCar CreateBussinessCar() return new Bmw.BmwBussinessCar(); A組合模式(Composite) B簡單

14、工廠模式(Simple Factory) C工廠方法模式(Factory Method) D抽象工廠模式(Abstract Factory) 25以下哪個設(shè)計模式最符合以下的場景說明: A 1.能使客戶端獨立于產(chǎn)品的創(chuàng)建過程,并且在系統(tǒng)中引入新產(chǎn)品時無需對客戶端進行修改。 A工廠模式(Factory) B狀態(tài)模式(State) C享元模式(Flyweight) D原型模式(Prototype) 26以下哪個設(shè)計模式是著重于一步步構(gòu)造一個復(fù)雜對象并且是最后步驟才將返回此對象 C A簡單工廠模式(Simple Factory) B抽象工廠模式(Abstract Factory) C建造者模式(Bu

15、ilder) D單例模式(Singleton) 27異常處理機制可理解為哪一種行為模式 C A觀察者(Observer)模式 B迭代器(Iterator)模式 C職責(zé)鏈(Chain of Responsibility)模式 D策略(Strategy)模式 28Observer(觀察者)模式適用于 C A當一個抽象模型存在兩個方面,其中一個方面依賴于另一方面,將這二者封裝在獨立的對象中以使它們可以各自獨立地改變和復(fù)用 B當對一個對象的改變需要同時改變其它對象,而不知道具體有多少對象有待改變時 C當一個對象必須通知其它對象,而它又不能假定其它對象是誰。也就是說你不希望這些對象是緊密耦合的 D一個對

16、象結(jié)構(gòu)包含很多類對象,它們有不同的接口,而想對這些對象實施一些依賴于其具體類的操作 29封裝分布于多個類之間的行為的模式是 C A觀察者(Observer)模式 B迭代器(Iterator)模式 C訪問者(Visitor)模式 D策略(Strategy)模式 30結(jié)構(gòu)型模式中最體現(xiàn)擴展性的幾種模式是 C A適配器(Adapte)模式 B合成(Composite)模式 C裝飾(Decorator)模式 D橋接(Bridge)模式 31常用的基本設(shè)計模式可分為 A A創(chuàng)建型、結(jié)構(gòu)型和行為型 B對象型、結(jié)構(gòu)型和行為型 C過程型、結(jié)構(gòu)型和行為型 D抽象型、接口型和實現(xiàn)型 32以下關(guān)于創(chuàng)建型模式說法正確

17、的是 A A創(chuàng)建型模式關(guān)注的是對象的創(chuàng)建 B創(chuàng)建型模式關(guān)注的是功能的實現(xiàn) C創(chuàng)建型模式關(guān)注的是組織類和對象的常用方法 D創(chuàng)建型模式關(guān)注的是對象間的協(xié)作 33以下哪個模式是利用一個對象,快速地生成一批對象 C A抽象工廠(Abstract Factory)模式 B合成(Composite)模式 C原型(Prototype)模式 D橋接(Bridge)模式 34以下關(guān)于抽象工廠模式與建造者模式區(qū)別,說法不正確的是 C A建造者模式著重于一步步構(gòu)造一個復(fù)雜對象; B建造者模式在最后一步返回產(chǎn)品; C抽象工廠中,產(chǎn)品是立即返回的 D抽象工廠著重于單個的產(chǎn)品對象。 35以下對于代理模式,說法不正確的是

18、B A虛擬代理:代理不會生成一個真實的耗費代理,直到非常有必要時(首次有請求0。用來存放花費大(實例化要很長時間)的真實對象。 B遠程代理:本地代理對象控制一個本地的對象。 C安全代理:代理檢查調(diào)用真實對象所需要的權(quán)限。 D聰明代理:當調(diào)用真實的對象時,代理處理另外一些事。 36抽象工廠模式的別名為 C A虛擬構(gòu)造器模式 B靜態(tài)工廠模式 CKit模式 D多態(tài)工廠模式 37下列模式中,屬于結(jié)構(gòu)模式的是(B )。 A抽象工廠模式 B裝飾模式 C策略模式 D建造者模式 38下列關(guān)于靜態(tài)工廠與工廠方法表述錯誤的是( A )。 A兩者都滿足開閉原則:靜態(tài)工廠以if else方式創(chuàng)建對象,增加需求的時候會

19、修改源代碼 B靜態(tài)工廠對具體產(chǎn)品的創(chuàng)建類別和創(chuàng)建時機的判斷是混和在一起的,這點在工廠方法中 C不能形成靜態(tài)工廠的繼承結(jié)構(gòu) D在工廠方法模式中,對于存在繼承等級結(jié)構(gòu)的產(chǎn)品樹,產(chǎn)品的創(chuàng)建是通過相應(yīng)等級結(jié)構(gòu)的工廠創(chuàng)建的 39適配器模式是( A )原則的典型應(yīng)用。 A合成聚合復(fù)用原則 B里氏代換原則 C依賴倒置原則 D迪米特法則 40下列模式中,不屬于創(chuàng)建模式的是( A )。 A適配器模式 B工廠方法模式 C原型模式 D以上都不是 二、多選題1當使用單件(單例)設(shè)計模式時,可以獲得如下(A B C D)優(yōu)點。 A對唯一實例提供受控訪問 B縮小名稱空間 C允許對操作和表示進行精化操作 D運行可變數(shù)目的類

20、實例數(shù) 2從模式所提供的功能性來看,模式可以分為( A C D ) A創(chuàng)建模式 B測試模式 C行為模式 D結(jié)構(gòu)模式 3以下屬于面向?qū)ο蟮脑O(shè)計原則的有(A B C D) A迪米特原則 B依賴倒轉(zhuǎn)原則 C接口隔離原則 D無循環(huán)依賴原則(包圖) 4關(guān)于外觀模式(Facade)說法正確的是? A B A提供一個統(tǒng)一的接口去訪問多個子系統(tǒng)的多個不同的接口。 B提供了一個簡單且公用的接口去處理復(fù)雜的子系統(tǒng),并且沒有減少子系統(tǒng)的功能。 C限制了客戶的自由,減少了可變性。 D客戶與抽象的實現(xiàn)類中存在若干依賴。 5關(guān)于訪問者模式(Visitor)的適用性以下哪些是正確的。 A B C A一個對象的結(jié)構(gòu)包含多個不

21、同接口的對象,并且需要根據(jù)具體對象作不同的處理。 B對結(jié)構(gòu)中的對象有很多不同且沒有聯(lián)系的處理,因此需要避免操作將類分離。 C類中定義的對象結(jié)構(gòu)很少改變,但需要以常地定義處理結(jié)構(gòu)的新操作。 D需要對行為的算法作很多變動。 6以下哪些設(shè)計模式都可以用來將抽象部分與實現(xiàn)部分分離 C A適配器模式(Adapter) B裝飾模式(Decorator) C橋接模式(Bridge) D代理模式(Proxy) 7以下屬于創(chuàng)建型模式的是 A C A抽象工廠(Abstract Factory)模式 B合成(Composite)模式 C單例(Singleton)模式 D橋接(Bridge)模式 8面向?qū)ο笙到y(tǒng)中功能

22、復(fù)用的最常用技術(shù)是 A B A類繼承 B對象組合 C使用抽象類 D使用實現(xiàn)類 9以下哪些問題通過應(yīng)用設(shè)計模式能夠解決 A D A指定對象的接口 B排除軟件BUG C確定軟件的功能都正確實現(xiàn) D設(shè)計應(yīng)支持變化 10以下屬于行為對象模式的是 A B C D A模板(Template Method)模式 B迭代器(Iterator)模式 C命令(Command)模式 D觀察者(Observer)模式 11在不破壞類封裝性的基礎(chǔ)上,使得類可以同不曾估計到的系統(tǒng)進行交互。主要體現(xiàn)在 A D A適配器(Adapte)模式 B合成(Composite)模式 C原型(Prototype)模式 D橋接(Brid

23、ge)模式 12以下關(guān)于抽象工廠設(shè)計模式,說法正確的是 A B C D A提供一系列相互依賴對象的創(chuàng)建工作 B封裝對象常規(guī)的創(chuàng)建方法(new) C提供統(tǒng)一調(diào)用數(shù)據(jù)訪問方法的方式 D避免調(diào)用數(shù)據(jù)訪問方法和具體對象創(chuàng)建工作的緊耦合三、簡答題1請簡述下,繼承在程序設(shè)計中,存在的缺陷? 答:因為在使用繼承時,父類的任何改變都可能影響子類的行為,沒有助于保持每個類的單一職責(zé)原則。2簡述下,結(jié)構(gòu)型模式一共有多少種,分別為哪些?代理模式、裝飾模式和適配器模式,有什么區(qū)別,如何區(qū)分應(yīng)用在具體事例中。并請舉例說明。 答:一共有7種,分別為組合模式、裝飾模式、外觀模式、享元模式、代理模式、適配器模式、橋接模式;1

24、 適配器模式是將一個類(a)通過某種方式轉(zhuǎn)換成另一個類(b).2 裝飾模式是在一個原有類(a)的基礎(chǔ)之上增加了某些新的功能變成另一個類(b).3 代理模式是將一個類(a)轉(zhuǎn)換成具體的操作類(b).3 簡述下,創(chuàng)建型模式一共有多少種,分別為哪些?工廠方法模式、抽象工廠模式與建造者模式,有什么區(qū)別,如何區(qū)分應(yīng)用在具體事例中。并請舉例說明。 一共6鐘,分別是簡單工廠,工廠方法模式,抽象工廠模式,建造者模式,原型模式,單例模式。工廠只不過是對一個產(chǎn)品的封裝,而抽象工廠是對一系列相關(guān)產(chǎn)品的封裝,建造者也是一種封裝,只是它封裝的是過程。4您現(xiàn)負責(zé)通過文件操作的開發(fā)框架設(shè)計任務(wù)。經(jīng)過調(diào)研后,您發(fā)現(xiàn)公司已經(jīng)封

25、裝好一個類專門用于提供txt , XML , Word , Excel 文件操作的功能。為了使得開發(fā)框架能最大的程度的復(fù)用,您該如何設(shè)計您的開發(fā)框架。現(xiàn)提出幾點技術(shù)意見: 1 本框架提供對各類文件(txt , XML , Word , Excel)的通用讀取和寫入功能。 2 在文件讀寫時,能支持字符轉(zhuǎn)碼和字符轉(zhuǎn)字節(jié)這兩個功能的熱插拔。 3 在文件讀寫時,能支持處理過程動作自定義,即:在文件讀寫正在進行中能加入業(yè)務(wù)功能。例如:每讀取100個字節(jié),則滾動條增加一格。 根據(jù)以上的說明,詳細闡述該結(jié)合使用哪幾種設(shè)計模式來實現(xiàn)以上的開發(fā)框架。 5根據(jù)以下場景說明,請選用最佳的設(shè)計模式,并說明該設(shè)計模式的

26、原理及其優(yōu)缺點? 場景:你在淘寶網(wǎng)上開了一間個人網(wǎng)店,你與買家之間不是面對面的現(xiàn)金交易,而是通過淘寶網(wǎng)的支付寶系統(tǒng)進行電子貨幣虛擬交易。你網(wǎng)店的營業(yè)金額從支付寶里取,買家也把應(yīng)支付的金額交給支付寶。 適配器模式,一個適配允許通常因為接口不兼容而不能在一起工作的類工作在一起,做法是將類自己的接口包裹在一個已存在的類中。6根據(jù)以下場景說明,請選用最佳的設(shè)計模式,并說明該設(shè)計模式的原理及其優(yōu)缺點? 場景:你拿出上次旅行時所拍攝的個人寫真照片,但你發(fā)覺你看來看去都不順眼,于是你到禮品店買了個相框,結(jié)果你發(fā)現(xiàn)相框整體感還是達不到你的要求,所以你在相框上貼了一些小東西。經(jīng)過你一番的努力,相框的整體感覺終于

27、符合你的期望了。裝飾模式:裝飾模式以對客戶端透明的方式擴展對象的功能,是繼承關(guān)系的一個替代方案,提供比繼承更多的靈活性。動態(tài)給一個對象增加功能,這些功能可以再動態(tài)的撤消。增加由一些基本功能的排列組合而產(chǎn)生的非常大量的功能。 7根據(jù)以下場景說明,請選用最佳的設(shè)計模式,并說明該設(shè)計模式的原理及其優(yōu)缺點? 場景:你與家人商量周末自駕一同前往海灘度假,以下是你和家人的對話. 妹妹:“我想把芭比娃娃帶上車?!?我:“好好,還有呢?” 媽媽:“得把家里的個人日用品帶上車。” 我:“好好,還有呢?” 爸爸:“車上得備上幾瓶好酒?!?我:“好好,還有呢?” . 到了周末,我把所有的東西一件一件裝上車,一路顛簸

28、終于到了海灘。迭代子模式:迭代子模式可以順序訪問一個聚集中的元素而不必暴露聚集的內(nèi)部表象。多個對象聚在一起形成的總體稱之為聚集,聚集對象是能夠包容一組對象的容器對象。迭代子模式將迭代邏輯封裝到一個獨立的子對象中,從而與聚集本身隔開。迭代子模式簡化了聚集的界面。每一個聚集對象都可以有一個或一個以上的迭代子對象,每一個迭代子的迭代狀態(tài)可以是彼此獨立的。迭代算法可以獨立于聚集角色變化。8根據(jù)以下場景說明,請選用最合適的設(shè)計模式,并闡述該設(shè)計模式的原理及其優(yōu)缺點? 場景:假設(shè)某天你請朋友吃飯,麥當勞的雞翅和肯德基的雞翅都是朋友愛吃的東西,雖然口味有所不同,但不管你帶朋友去麥當勞或肯德基,只管向服務(wù)員說

29、“來四個雞翅”就行了。 工廠模式:客戶類和工廠類分開。消費者任何時候需要某種產(chǎn)品,只需向工廠請求即可。消費者無須修改就可以接納新產(chǎn)品。缺點是當產(chǎn)品修改時,工廠類也要做相應(yīng)的修改。如:如何創(chuàng)建及如何向客戶端提供。 1) 工廠方法 模式中,父類負責(zé)定義創(chuàng)建對象的公共接口,子類決定要創(chuàng)建的具體類是哪一個。2) 抽象工廠 模式提供一系列相關(guān)或相互依賴對象的接口而無需指定它們具體的類。3) 單 例 模式確保某一個類僅有一個實例,并自行實例化并向整個系統(tǒng)提供這個實例。4) 組 合 模式將對象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。使得用戶對單個對象和組合對象的使用具有一致性。5) 外 觀 模式定義了

30、一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用,為子系統(tǒng)中的一組接口提供一個一致的界面,簡化了一群類的接口。6) 觀察者 模式定義對象間的一種一對多的依賴關(guān)系,當一個對象的狀態(tài)發(fā)生改變時, 所有依賴于它的對象都得到通知并被自動更新,也就是讓對象能在狀態(tài)改變時被通知。7) 模 板 模MVC模型式定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。8) 迭代器模式在對象的集合之中游走,而不暴露集合的實現(xiàn)。9) 代理模式包裝對象,以控制對比對象的訪問。10) 適配器模式封裝對象,并提供不同的接口。2.工廠模式分為(簡單工廠),(工廠方法),(抽象工廠)三種類型。3.適配器模式,分為類的適配器和對

31、象的適配器兩種實現(xiàn)。其中類的適配器采用的是(繼承)關(guān)系,而對象適配器采用的是(組合聚合)關(guān)系。4.設(shè)計模式的基本要素有(名字 ),(意圖 ),(問題 ),( 解決方案 ),(參與者與協(xié)作者 ),( 實現(xiàn)),(一般性結(jié)構(gòu))。5.MVC模型的基本工作原理是基于(觀察者)模式,實現(xiàn)是基于(命令)模式6.面向?qū)ο蟮牧鶙l基本原則包括:開閉原則,里式代換原則,合成聚合原則以及(依賴倒轉(zhuǎn)),(迪米特法則)(接口隔離)。7當我們想用不同的請求對客戶進行參數(shù)化時,可以使用( 命令 )模式。8當我們想封裝不同算法并使它們可相互替換時,可以使用(策略)模式。9. 每一個設(shè)計模式都集中于一個特定的(設(shè)計問題),描述了

32、(相互通信的對象)或者(類)以及(解決方案)和(解決效果 )。10設(shè)計模式中應(yīng)優(yōu)先使用(對象組合)而不是(類繼承)。11. 面向?qū)ο螅∣O)的基礎(chǔ)包括(抽象)(封裝)(多態(tài))(繼承)。12.(狀態(tài)模式)允許一個對象基于內(nèi)部狀態(tài)而擁有不同的行為。13.模式不是代碼,而是(針對設(shè)計問題)的通用解決方案。14.觀察者模式定義了對象之間(一對多)的關(guān)系。15.觀察者和可觀察者之間用(松耦合方式)結(jié)合。16設(shè)計模式的兩大主題是:(對象組合) 和 (類繼承)的討論。 17.(組合)和(委托)可用于運行時動態(tài)地加上新的行為。18.工廠方法使用(繼承)把對象的創(chuàng)建委托給子類,子類實現(xiàn)了工廠方法來創(chuàng)建對象。19

33、.抽象工廠方法使用(對象組合)使對象的創(chuàng)建被實現(xiàn)在工廠接口所暴露出來的方法中。20.在Java中實現(xiàn)單件模式,需要私有的(構(gòu)造器)(一個靜態(tài)方法)和(一個靜態(tài)變量)21命令模式將(發(fā)出請求)的對象和(執(zhí)行請求)的對象解耦。22.當需要一個現(xiàn)有的類而其接口不符合需求時,可使用(適配器)模式。23.適配器模式的兩種模式是(對象適配器)和(類適配器)。24.(模板方法)定義了算法的步驟,把這些步驟的實現(xiàn)延遲到了子類。25.(代理模式)為另一個對象提供代表,以便控制客戶對對象的訪問。26.裝飾著模式為對象加上(行為)而代理模式則是(控制訪問)。27.開閉原則:(擴展開放)(修改關(guān)閉)。28.代理模式分

34、為哪4種:(虛擬代理)(遠程代理)(安全代理)(聰明引用)。1設(shè)計模式具有的優(yōu)點。(A)A. 適應(yīng)需求變化 B.程序易于理解C. 減少開發(fā)過程中的代碼開發(fā)工作量 D.簡化軟件系統(tǒng)的設(shè)計2. 若系統(tǒng)中的某子模塊需要為其它模塊提供訪問不同數(shù)據(jù)庫系統(tǒng)(Oracle、SQL Server、DB2 UDB 等)的功能,這些數(shù)據(jù)庫系統(tǒng)提供的訪問接口有一定的差異,但訪問過程卻都是相同的,例如,先連接數(shù)據(jù)庫,再打開數(shù)據(jù)庫,最后對數(shù)據(jù)進行查詢,( D ) 設(shè)計模式可抽象出相同的數(shù)據(jù)庫訪問過程;A. 外觀 B. 裝飾 C. 單件 D. 模板方法3 系統(tǒng)中的文本顯示類(TextView)和圖片顯示類(Picture

35、View)都繼承了組件類(Component),分別顯示文本和圖片內(nèi)容,現(xiàn)需要構(gòu)造帶有滾動條、或者帶有黑色邊框、或者既有滾動條又有黑色邊框的文本顯示控件和圖片顯示控件,但希望最多只增加三個類,( B )設(shè)計模式可以實現(xiàn)該目的。A. 外觀 B. 裝飾 C.單件 D. 模板方法10.當我們想創(chuàng)建一個具體的對象而又不希望指定具體的類時,可以使用( A)模式。A.創(chuàng)建型 B.結(jié)構(gòu)型 C行為型 D.以上都可以11、設(shè)計模式的兩大主題是( d )A.系統(tǒng)的維護與開發(fā) B 對象組合與類的繼承C.系統(tǒng)架構(gòu)與系統(tǒng)開發(fā) D.系統(tǒng)復(fù)用與系統(tǒng)擴展12、單例模式中,兩個基本要點( a b )和單子類自己提供單例 A .

36、構(gòu)造函數(shù)私有 B.唯一實例C.靜態(tài)工廠方法 D.以上都不對13、下列模式中,屬于行為模式的是( b ) A.工廠模式 B觀察者 C適配器 以上都是14、對象適配器模式是( a )原則的典型應(yīng)用。A.合成聚合復(fù)用原則 B.里式代換原則C.依賴倒轉(zhuǎn)原則 D.迪米特法則15、靜態(tài)工廠的核心角色是(a)A.抽象產(chǎn)品 B.具體產(chǎn)品 C.靜態(tài)工廠 D.消費者16、在觀察者模式中,表述錯誤的是( c )A.觀察者角色的更新是被動的。B.被觀察者可以通知觀察者進行更新C.觀察者可以改變被觀察者的狀態(tài),再由被觀察者通知所有觀察者依據(jù)被觀察者的狀態(tài)進行。D.以上表述全部錯誤。17、以下關(guān)于創(chuàng)建型模式說法正確的是

37、。 (A)A創(chuàng)建型模式關(guān)注的是對象的創(chuàng)建B創(chuàng)建型模式關(guān)注的是功能的實現(xiàn)C創(chuàng)建型模式關(guān)注的是組織類和對象的常用方法D創(chuàng)建型模式關(guān)注的是對象間的協(xié)作18.常用的描述設(shè)計模式的格式有(ABCD) 。A意圖 B動機C適用性 D結(jié)構(gòu)19.以下關(guān)于結(jié)構(gòu)型模式說法正確的是 (ACD)。A.結(jié)構(gòu)型模式可以在不破壞類封裝性的基礎(chǔ)上,實現(xiàn)新的功能。B.結(jié)構(gòu)型模式主要用于創(chuàng)建一組對象。C.結(jié)構(gòu)型模式可以創(chuàng)建一組類的統(tǒng)一訪問接口D.結(jié)構(gòu)型模式可以在不破壞類封裝性的基礎(chǔ)上,使得類可以同不曾估計到的系統(tǒng)進行交互。20.以下屬于結(jié)構(gòu)型模式的是(AB)。A.代理(Proxy)模式 B.合成(Composite)模式C.命令(

38、Command)模式 D.觀察者(Observer)模式21.在不破壞類封裝性的基礎(chǔ)上,使得類可以同不曾估計到的系統(tǒng)進行交互。主要體現(xiàn)在(AD)。A.適配器(Adapte)模式 B.合成(Composite)模式C.原型(Prototype)模式 D.橋接(Bridge)模式22.結(jié)構(gòu)型模式中最體現(xiàn)擴展性的幾種模式是(BC)。A.適配器(Adapte)模式 B.合成(Composite)模式C.裝飾(Decorator)模式 D.橋接(Bridge)模式23.行為類模式使用( B )在類間分派行為。A.接口 B.繼承機制C.對象組合 D.委托24.以下屬于行為對象模式的是 ( BCD )。A.

39、模板(Template Method)模式 B.迭代器(Iterator)模式C.命令(Command)模式 D.觀察者(Observer)模式25.封裝分布于多個類之間的行為的模式是( C ) 。A.觀察者(Observer)模式 B.迭代器(Iterator)模式C.訪問者(Visitor)模式 D.策略(Strategy)模式26.利用繼承來提供DUCK的行為,會導(dǎo)致下列那些缺點?(ABCD)A代碼在多個子類中重復(fù) B.運行時的行為不容易改變C我們不能讓鴨子跳舞D.改變會牽一發(fā)而動全身,造成其他鴨子不想要的改變1、設(shè)計模式一般用來解決什么樣的問題( a)A.同一問題的不同表相 B不同問題

40、的同一表相 C.不同問題的不同表相 D.以上都不是2、下列屬于面向?qū)ο蠡驹瓌t的是( c )A.繼承 B.封裝 C.里氏代換 D都不是3、Open-Close原則的含義是一個軟件實體( a ) A.應(yīng)當對擴展開放,對修改關(guān)閉. B.應(yīng)當對修改開放,對擴展關(guān)閉C.應(yīng)當對繼承開放,對修改關(guān)閉D.以上都不對4、當我們想創(chuàng)建一個具體的對象而又不希望指定具體的類時,可以使用( a )模式。 A.創(chuàng)建型 B.結(jié)構(gòu)型 C行為型 D.以上都可以5、要依賴于抽象,不要依賴于具體。即針對接口編程,不要針對實現(xiàn)編程,是( d )的表述 A.開-閉原則 B.接口隔離原則 C.里氏代換原則 D.依賴倒轉(zhuǎn)原則6、依據(jù)設(shè)計

41、模式思想,程序開發(fā)中應(yīng)優(yōu)先使用的是( a )關(guān)系實現(xiàn)復(fù)用。 A, 委派 B.繼承 C創(chuàng)建 D.以上都不對 復(fù)用方式:繼承和組合聚合(組合委派)7、設(shè)計模式的兩大主題是( d ) A.系統(tǒng)的維護與開發(fā) B 對象組合與類的繼承 C.系統(tǒng)架構(gòu)與系統(tǒng)開發(fā) D.系統(tǒng)復(fù)用與系統(tǒng)擴展8、單例模式中,兩個基本要點( a b )和單子類自己提供單例 A .構(gòu)造函數(shù)私有 B.唯一實例 C.靜態(tài)工廠方法 D.以上都不對9、下列模式中,屬于行為模式的是( b ) A.工廠模式 B觀察者 C適配器 以上都是10、“不要和陌生人說話” 是( d )原則的通俗表述 A.接口隔離B.里氏代換C.依賴倒轉(zhuǎn) D.迪米特:一個對象應(yīng)對其他對象盡可能少的了解11、構(gòu)造者的的退化模式是通過合并( c )角色完成退化的。 A.抽象產(chǎn)品 B產(chǎn)品 C創(chuàng)建者 D使用者12、單子(單例,單態(tài))模式類圖結(jié)構(gòu)如下: 下列論述中,關(guān)于”0.1”表述的不正確的是( d ) A.1表示,一個單例類中,最多可以有一個實例. B.”0.1”表示單例類中有不多于一個的實例 C.0表示單例類中可以沒有任何實例 D.0表示單例類可以提供其他非自身的實例13、對象適配器模式是( a )原則的典型應(yīng)用。 A.合成聚合復(fù)用原則 B.里式代換原則 C.依賴倒轉(zhuǎn)原則 D.迪米

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論