




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、JAVA設計模式復習資料、單項選擇題1 .設計模式起源于()A、機械設計C、水利工程設計2 .不要和陌生人說話”是(A、接口隔離B、里氏替換3 .目前常見的設計模式主要有(A、23B、21B、建筑工程設計D、工業(yè)電力化設計)原則的通俗表述。C、依賴倒置D、迪米特)種。C、32D、284 .以下關于單一職責原則的敘述不正確的是()。A、單一職責原則的英文名稱是SingleResponsibilityPrinciple.B、單一職責原則要求一個類只有一個職責C、單一職責原則有利于對象的穩(wěn)定,降低類的復雜性D、單一職責原則提高了類之間的耦合性5 .以下關于依賴倒置原則的敘述不正確的是()A、依賴倒置
2、原則的簡稱是DIPB、高層模塊不依賴于低層模塊,低層模塊依賴于高層模塊C、依賴倒置原則中高層模塊和低層模塊都依賴于抽象D、依賴倒置原則實現(xiàn)模塊間的松耦合6 .下面關于單例模式說法錯誤的是()A、單例模式是指一個類只有一個實例B、單例類從實現(xiàn)方式上分為懶漢式和餓漢式C、單例類從功能上分為狀態(tài)單例類和無狀態(tài)單例類D、可以通過繼承的方式對單例類進行擴展得到功能更豐富的單例類7 .下面關于工廠方法模式說法錯誤的是()。A、工廠方法模式使一個類是實例化延遲到其子類中B、工廠方法模式中具有抽象工廠、具體工廠、抽象產(chǎn)品和具體產(chǎn)品4個角色C、工廠方法模式可以處理多個產(chǎn)品的多個等級結(jié)構(gòu)D、工廠方法模式可以屏蔽產(chǎn)
3、品類8 .在以下情況不適合使用責任職責鏈模式()A、有多個對象可以處理請求,哪個對象處理該請求在運行時刻自動確定。B、在需要用比較通用和復雜的對象指針代替簡單的指針的時候。C、你想在不明確指定接收者的情況下,向多個對象中的一個提交一個請求。D、一個請求需要一系列的處理工作。9 .當我們想創(chuàng)建一個具體的對象而又不希望指定具體的類時,可以使用()模式A、結(jié)構(gòu)型B、創(chuàng)建型C、行為型D、以上都可以10 .以下用來描述適配器模式的是()A、表示一個作用于某對象結(jié)構(gòu)中的各元素的操作,它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作。B、定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。C
4、、將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口,使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。D、動態(tài)地給一個對象增加一些額外的職責。11 .以下用來描述命令模式是()A、將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數(shù)化;對請求排隊或記錄請求日志,以及支持可撤消的操作。B、定義一系列的算法,把它們一個個封裝起來,并且使它們可相互替換,本模式使得算法可獨立于使用它的客戶而變化。C、為其他對象提供一種代理以控制對這個對象的訪問。D、保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。12 .以下關于創(chuàng)建型模式說法正確的是()A、創(chuàng)建型模式關注的是對象的創(chuàng)建方法B、創(chuàng)建型
5、模式關注的是功能的實現(xiàn)方法C、創(chuàng)建型模式關注的是組織類和對象的常用方法D、創(chuàng)建型模式關注的是對象間的協(xié)作13 .以下用來描述裝飾模式的是()A、運用共享技術有效地支持大量細粒度的對象B、用原型實例指定創(chuàng)建對象的種類,并且通過拷貝這些原型創(chuàng)建新的對象C、將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化D、動態(tài)地給一個對象添加一些額外的職責14 .不應該強迫客戶依賴于它們不用的方法,是關于()的表述。A、開-閉原則B、接口隔離原則C、里氏替換原則D、依賴倒置原則15 .以下用來描述外觀模式的是()A、為子系統(tǒng)中的一組接口提供一個一致的界面,本模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容
6、易使用。B、定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。C、保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。D、在不破壞封裝性的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài)。樣以后就可將該對象恢復到原先保存的狀態(tài)。16 .以下意圖哪個是用來描述橋梁模式()A、提供一個創(chuàng)建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。B、將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。C、將一個復雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。D、動態(tài)地給一個對象添加一些額外的職責。17 .開閉原則的含義是一個軟件實體()A、應當對繼承開放,對實現(xiàn)
7、關閉.B、應當對修改開放,對擴展關閉C、應當對擴展開放,對修改關閉D、以上都不對18 .以下哪個用來描述建造者模式()A、定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類第2頁共8頁B、保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。C、將一個復雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。D、運用共享技術有效地支持大量細粒度的對象。19 .以下哪個不屬于設計模式的要素()A、模式名稱B、問題C、因素D、環(huán)境20 .以下不屬于結(jié)構(gòu)型模式的是()A、代理模式B、工廠方法模式C、適配器模式D、享元模式1-5BDADB6-10DCBBC11-15AADBA16-20BC
8、CCB21 .關于模式應用場景,在以下哪種情況適合使用組合模式()A、你想使用一個已經(jīng)存在的類,而它的接口不符合你的需求。B、當一個類的實例只能有幾個不同狀態(tài)組合中的一種時。C、你想表示對象的部分-整體層次結(jié)構(gòu)。D、一個對象的行為取決于它的狀態(tài),并且它必須在運行時根據(jù)狀態(tài)改變行為。22 .Java的異常處理機制可理解為哪一種行為模式()A、觀察者模式B、迭代器模式C、職責鏈模式D、策略(Strategy)模式23 .當創(chuàng)建一個具體的對象而又不希望指定具體的類時,可以使用()模式。A、結(jié)構(gòu)型B、創(chuàng)建型C、行為型D、以上都可以24 .以下哪個用來描述建造者模式()A、定義一個用于創(chuàng)建對象的接口,讓
9、子類決定實例化哪一個類B、將一個復雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。C、保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。D、運用共享技術有效地支持大量細粒度的對象。25 .設計模式的兩大主題是()A、系統(tǒng)的維護與開發(fā)B、對象組合與類的繼承C、系統(tǒng)架構(gòu)與系統(tǒng)開發(fā)D、系統(tǒng)復用與系統(tǒng)擴展)的表述。26 .要依賴于抽象,不要依賴于具體,即針對接口編程,不要針對實現(xiàn)編程,是(A、開閉原則B、接口隔離原則C、里氏替換原則D、依賴倒置原則27 .以下意圖哪個是用來描述橋梁模式()A、提供一個創(chuàng)建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。B、將抽象部分與它的
10、實現(xiàn)部分分離,使它們都可以獨立地變化。C、將一個復雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。D、動態(tài)地給一個對象添加一些額外的職責。28 .以下意圖哪個是用來描述抽象工廠模式()A、提供一個創(chuàng)建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。B、定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。C、將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。D、表示一個作用于某對象結(jié)構(gòu)中的各元素的操作。29 .開閉原則的含義是一個軟件實體()A、應當對擴展開放,對修改關閉.B、應當對修改開放,對擴展關閉C、應當對繼承開放,對修改關閉D、以上都不對30 .對于違反里氏替換原則
11、的兩個類,可以采用的候選解決方案錯誤的是:()A、創(chuàng)建一個新的抽象類C,作為兩個具體類的超類,將A和B共同的行為移動到C中,從而解決A和B行為不完全一致的問題。B、將B到A的繼承關系改組成委派關系。C、區(qū)分是“Is-a”還是“Hasa"。如果是“Is-a”,可以使用繼承關系,如果是“Has-a”應該改成委派關系D、以上方案錯誤31 .以下意圖那個是用來描述ADAPTER(適配器)?()A、將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口,本模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。B、定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。C、表示一個作用于某對象結(jié)構(gòu)中的
12、各元素的操作,它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作。D、將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數(shù)化;對請求排隊或記錄請求日志,以及支持可撤消的操作。32 .不要和陌生人說話”是()原則的通俗表述。A、接口隔離B、里氏替換C、依賴倒置D、迪米特33 .以下關于創(chuàng)建型模式說法正確的是()A、創(chuàng)建型模式關注的是對象的創(chuàng)建B、創(chuàng)建型模式關注的是功能的實現(xiàn)C、創(chuàng)建型模式關注的是組織類和對象的常用方法D、創(chuàng)建型模式關注的是對象間的協(xié)作34 .關于模式適用性,在以下情況不適合使用享元模式?()A、一個應用程序使用了大量的對象。B、完全由于使用大量的對象,造成很
13、大的存儲開銷。C、對象的大多數(shù)狀態(tài)都可變?yōu)橥獠繝顟B(tài)。D、你想使用一個已經(jīng)存在的類,而它的接口不符合你的需求。35 .適配器模式是()原則的典型應用。A、合成聚合復用原則B、里氏替換原則C、依賴倒置原則D、迪米特法則21-25.CCBBD26-30.DBAAD31-35.ADADA二、填空題1、設計模式分為創(chuàng)建型、行為型、結(jié)構(gòu)型三大類型。2、設計模式中的六個主要原則主要包括:單一職責原則、依賴倒置原則、里氏替換原則接口隔離原則、迪米特法則和開閉原則。3、設計模式中,對迪米特法則進行應用的設計模式有外觀模式和中介者模式。4、裝飾模式模式用于動態(tài)地給一個對象添加一些額外的職責。5、外觀模式模式要求一
14、個子系統(tǒng)的外表與其內(nèi)部的通信必須通過一個統(tǒng)一的對象進行。6、橋梁模式模式的定義是將抽象和現(xiàn)實解耦,使得兩者可以獨立地變化。7、觀察者模式模式定義對象間一種一對多的關系,使得每當一個對象改變狀態(tài),則所有依賴于它的對象都會得到通知并被自動更新。8、行為型模式主要用于描述對類或?qū)ο笤鯓咏换ズ驮鯓臃峙渎氊煛?、組合模式屬于一結(jié)構(gòu)型型模式、原型模式屬于創(chuàng)建型型模式。10、 模板方法模式定義一個操作中的算法框架,將一些步驟延遲到子類中實現(xiàn)。11、裝飾模式用于動態(tài)地給一個對象添加一些額外的職責。12、外觀模式要求一個子系統(tǒng)的外表與其內(nèi)部的通信必須通過一個統(tǒng)一的對象進行。13、策略模式定義一組算法,將每個算法
15、封裝起來,并且使它們之間可以互換。14、_備忘錄_模式捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài),以后可以將該對象恢復到原先保存的狀態(tài)。15、適配器模式將一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。16、 規(guī)格模式模式是策略模式和組合模式的擴展。1、創(chuàng)建型、行為型、結(jié)構(gòu)型3、中介者模式4、裝飾模式6、橋梁模式7、觀察者模式8.行為9.結(jié)構(gòu)型、創(chuàng)建型13、策略14、備忘錄2、里氏替換原則、接口隔離5、外觀模式10.模板方法15、適配器11、裝飾16、規(guī)格模式12、外觀三、簡答題1、簡述依賴倒置原則的三層含義、在Java當中的體
16、現(xiàn)和優(yōu)點。答:接口隔離原則有如下兩種定義:客戶端不應該依賴它不需要的接口;類間的依賴關系應該建立在最小的接口上接口隔離原則的具體的含義如下:(1)一個類對另外一個類的依賴性應當是建立在最小的接口上的(2)一個接口代表一個角色,不應當將不同的角色都交給一個接口。沒有關系的接口合并在一起,形成一個臃腫的大接口,這是對角色和接口的污染。因此使用多個專門的接口比使用單一的總接口要好(3)不應該強迫客戶依賴于它們不用的方法。接口屬于客戶,不屬于它所在的類層次結(jié)構(gòu)。即不要強迫客戶使用它們不用的方法,否則這些客戶就會面臨由于這些不使用的方法的改變所帶來的問題。2、簡述工廠方法模式的定義和角色答:(1)概念定
17、義一個創(chuàng)建產(chǎn)品對象的工廠接口,讓子類決定實例化哪個子類(2)4個角色:抽象工廠(Creator)角色:該角色是工廠方法模式的核心,與應用系統(tǒng)無關,任何在創(chuàng)建對象的工廠類必須實現(xiàn)這個接口。具體工廠(ConcreteCreator)角色:該角色實現(xiàn)了抽象工廠接口,含有與應用密切相關的邏輯,并且受到應用程序的調(diào)用以創(chuàng)建產(chǎn)品對象。多個具體工廠分別對應生產(chǎn)多個具體產(chǎn)品。抽象產(chǎn)品(Product)角色:該角色負責定義產(chǎn)品的共性,實現(xiàn)對產(chǎn)品最抽象的定義。具體產(chǎn)品(ConcreteProduct)角色:該角色實現(xiàn)抽象產(chǎn)品角色所聲明的接口,工廠方法模式所創(chuàng)建的每一個對象都是某個具體產(chǎn)品角色的實例。3、簡述模板方
18、法模式的定義和角色和優(yōu)點答:(1)概念定義一個操作中的算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟(2)模板方法角色:抽象模板(AbstractTemplate)角色:該角色定義一個或多個抽象操作,以便讓子類實現(xiàn);這些抽象操作是基本操作,是一個頂級邏輯的組成步驟。還需要定義并實現(xiàn)一個或幾個模板方法,實現(xiàn)對基本方法的調(diào)度,完成固定的邏輯。具體模板(ConcreteTemplate)角色:該角色實現(xiàn)抽象模板中定義的一個或多個抽象方法,每一個抽象模板角色都可以有任意多個具體模板角色與之對應,分別給出這些抽象方法的不同實現(xiàn),從而使得頂級邏輯的實現(xiàn)
19、各不相同。4、簡述代理模式的定義和角色答:(1)定義:為其他對象提供一種代理以控制對這個對象的訪問。(2)代理模式3個角色:抽象主題(Subject)角色:該角色是真實主題和代理主題的共同接口,以便在任何可以使用真實主題的地方都可以使用代理主題。代理主題(ProxySubject)角色:也叫做委托類、代理類,該角色負責控制對真實主題的引用,負責在需要的時候創(chuàng)建或刪除真實主題對象,并且在真實主題角色處理完畢前后做預處理和善后處理工作。真實主題(RealSubject)角色:該角色也叫做被委托角色、被代理角色,是業(yè)務邏輯的具體執(zhí)行者。5、簡述中介者模式的定義和角色含義。答:(1)定義:用一個中介對
20、象封裝一系列對象(同事)的交互,中介者使各對象不需要顯式的相互作用,從而使其耦合松散,而且可以獨立的改變它們之間的交互。(2)中介者模式角色:抽象中介者(Mediator)角色:該角色定義出同事對象到中介者對象的統(tǒng)一接口,用于各同事角色之間的通信。具體中介者(ConcreteMediator)角色:該角色實現(xiàn)抽象中介者,它依賴于各個同事角色,并通過協(xié)調(diào)各同事角色實現(xiàn)協(xié)作行為。抽象同事(Colleague)角色:該角色定義出中介者到同事對象的接口,同事對象只知道中介者而不知道其余的同事對象。具體同事(ConcreteColleague)角色:該角色實現(xiàn)抽象同事類,每一個具體同事類都清楚自己在小范
21、圍內(nèi)的行為,而不知道大范圍內(nèi)的目的。6、簡述策略模式的定義和角色含義。答:(1)定義:定義一組算法,將每個算法都封裝起來,并且使它們之間可以互換。(2)策略模式角色:環(huán)境(Context)角色:該角色也叫上下文角色,起到承上啟下的作用,屏蔽高層模塊對策略、算法的直接訪問,它持有一個Strategy類的引用。抽象策略(Strategy)角色:該角色對策略、算法進行抽象,通常定義每個策略或算法必須具有的方法和屬性。具體策略(ConcreteStrategy)角色:該角色實現(xiàn)抽象策略中的具體操作,含有具體的算法。7、簡述設計模式的10要素。答:(1)模式名稱,簡潔反映設計模式的問題、解決方案和效果(
22、2)問題,解釋了設計問題和問題的前因后果(3)環(huán)境或初始環(huán)境,說明模式的使用范圍,也叫前提條件(4)解決方案,描述模式設計的組成部分,各部分職責和協(xié)作方式(5)效果,描述使用效果和使用模式應權衡的問題(6)舉例,使用一個或幾個應用示例說明特定的環(huán)境、以及模式如何應用到環(huán)境中,最終得到什么效果(7)末態(tài)環(huán)境,模式應用到系統(tǒng)之后的狀態(tài),包括好結(jié)果和壞結(jié)果,以及新狀態(tài)含有的其他問題(8)推理,推理解釋模式的步驟、規(guī)則(9)其他有關模式,描述現(xiàn)有系統(tǒng)中此模式與其他模式的動態(tài)和靜態(tài)關系。如相互依賴或替換。(10)已知應用。8、簡述依賴倒置原則答:包括三層含義:高層模塊不應該依賴底層模塊,兩者都依賴其抽象抽象不依賴細節(jié)細節(jié)應該依賴于抽象依賴倒
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育交流合同范本
- 2024年中國太平洋人壽保險股份有限公司招聘筆試真題
- 買賣物品合同范本
- 2024年內(nèi)蒙古興安盟實驗高中教師招聘考試真題
- 2024年納雍縣鴿子花農(nóng)業(yè)有限公司招聘考試真題
- 農(nóng)夫山泉公司勞動合同范本
- 創(chuàng)業(yè)投資協(xié)議合同范本
- 2024年河南省黃河科技學院附屬醫(yī)院招聘考試真題
- 公司系統(tǒng)服務合同范本
- 全體村民土地流轉(zhuǎn)合同范本
- 慢性胰腺炎病教學查房
- 中考英語復習閱讀理解-主旨大意題、推理判斷題
- 電解質(zhì)溶液的圖像分析(原卷版)-2025年高考化學一輪復習講義(新教材新高考)
- 2025年中考歷史一輪復習知識清單:隋唐時期
- 【生物】蒸騰作用- 2024-2025學年七年級上冊生物(北師大版2024)
- 摩根大通金融科技支出
- 《井巷掘進作業(yè)》課件
- 銀行保安服務 投標方案(技術方案)
- 《TCPIP協(xié)議基礎》課件
- 2019年大學學術規(guī)范測試版題庫500題(含標準答案)
- 農(nóng)村砍樹賠償合同模板
評論
0/150
提交評論