设计模式习题
?
1、設計模式一般用來解決什么樣的問題( a)
???A.同一問題的不同表相???B不同問題的同一表相
???C.不同問題的不同表相???D.以上都不是
2、下列屬于面向對象基本原則的是( c )
???A.繼承? B.封裝 C.里氏代換? D都不是
3、Open-Close原則的含義是一個軟件實體( a )
???A.應當對擴展開放,對修改關閉.
???B.應當對修改開放,對擴展關閉
???C.應當對繼承開放,對修改關閉
???D.以上都不對
4、當我們想創建一個具體的對象而又不希望指定具體的類時,可以使用( a )模式。
???A.創建型? B.結構型 C行為型 D.以上都可以
5、要依賴于抽象,不要依賴于具體。即針對接口編程,不要針對實現編程,是( d )的表述
???A.開-閉原則
???B.接口隔離原則
???C.里氏代換原則
??? D.依賴倒轉原則
6、依據設計模式思想,程序開發中應優先使用的是( a )關系實現復用。
??? A,委派? B.繼承?C創建?? D.以上都不對
???復用方式:繼承和組合聚合(組合委派)
7、設計模式的兩大主題是( d )
???A.系統的維護與開發??????B 對象組合與類的繼承
???C.系統架構與系統開發????D.系統復用與系統擴展
8、單子模式中,兩個基本要點( a b )和單子類自己提供單例
??? A.構造函數私有???B.唯一實例
???C.靜態工廠方法???D.以上都不對
9、下列模式中,屬于行為模式的是( b )
???A.工廠模式??B觀察者?? C適配器?以上都是
10、“不要和陌生人說話” 是( d )原則的通俗表述
???A.接口隔離?? B.里氏代換?C.依賴倒轉??D.迪米特:一個對象應對其他對象盡可能少的了解
11、構造者的的退化模式是通過合并( c )角色完成退化的。
???A.抽象產品???B產品???C創建者????D使用者
12、單子(單例,單態)模式類圖結構如下:
???下列論述中,關于”0..1”表述的不正確的是( d )
???A.1表示,一個單例類中,最多可以有一個實例.
???B.”0..1”表示單例類中有不多于一個的實例
???C.0表示單例類中可以沒有任何實例
???D.0表示單例類可以提供其他非自身的實例
13、對象適配器模式是( a )原則的典型應用。
???A.合成聚合復用原則????B.里式代換原則
???C.依賴倒轉原則???????D.迪米特法則
14、靜態工廠的核心角色是(a)
???A.抽象產品??B.具體產品???C.靜態工廠?? D.消費者
15、下列關于靜態工廠與工廠方法表述錯誤的是:( a )
???A.兩者都滿足開閉原則:靜態工廠以if else方式創建對象,增加需求的時候會修改源代碼
???B.靜態工廠對具體產品的創建類別和創建時機的判斷是混和在一起的,這點在工廠方法中
???C.不能形成靜態工廠的繼承結構
???D.在工廠方法模式中,對于存在繼承等級結構的產品樹,產品的創建是通過相應等級結構的工廠創建的。
16、在觀察者模式中,表述錯誤的是( c )
???A.觀察者角色的更新是被動的。
???B.被觀察者可以通知觀察者進行更新
???C.觀察者可以改變被觀察者的狀態,再由被觀察者通知所有觀察者依據被觀察者的狀態進行。
???D.以上表述全部錯誤。
17.對于違反里式代換原則的兩個類,可以采用的候選解決方案錯誤的是:( d )
???A.創建一個新的抽象類C,作為兩個具體類的超類,將A 和B 共同的行為移動到C 中,從而解決A和B 行為不完全一致的問題。
???B.將B到A的繼承關系改組成委派關系。
???C.區分是“IS-a”還是”Has-a”。如果是“Is-a”,可以使用繼承關系,如果是”Has-a”應該改成委派關系
???D.以上方案錯誤
18.對象組合的有點表述不當的是( d )
??? A.容器類僅能通過被包含對象的接口來對其進行訪問。
??? B.“黑盒”復用,封裝性好,因為被包含對象的內部細節對外是不可見。
??? C.通過獲取指向其它的具有相同類型的對象引用,
???????可以在運行期間動態地定義(對象的)組合
???D.造成極其嚴重的依賴關系。
19.關于繼承表述錯誤的是:( d )
???A.繼承是一種通過擴展一個已有對象的實現,從而獲得新功能的復用方法。
???B.泛化類(超類)可以顯式地捕獲那些公共的屬性和方法。特殊類(子類)則通過附加屬性和方法來進行實現的擴展。
???C.破壞了封裝性,因為這會將父類的實現細節暴露給子類。
???D.繼承本質上是“白盒復用”,對父類的修改,不會影響到子類。
20.對于依賴倒轉的表述錯誤的是( e )
???A.依賴于抽象而不依賴于具體,也就是針對接口編程。
???B.依賴倒轉的接口并非語法意義上的接口,而是,一個類對其他對象進行調用時,所知道的方法集合。
???C.從選項B的角度論述,一個對象可以有多個接口。
???D.實現了同一接口的對象,可以在運行期間,順利地進行替換。而且不必知道所示用的對象是那個實現類的實例。
???E.此題沒有正確答案。
21.面向對象的六條基本原則包括:開閉原則,里式代換原則,合成聚合原則以及
???????(依賴倒轉),(迪米特法則),(單一原則),(接口隔離?)。
22.在存在繼承關系的情況下,方法向(超類)方向集中,而數據向(子類)方向集中。
23.適配器模式,分為類的適配器和對象的適配器兩種實現。
???????其中類的適配器采用的是(繼承)關系,而對象適配器采用的是(組合聚合)關系。
24.設計模式的基本要素有(名字 ),(意圖 ),(問題 ),( 解決方案 ),(參與者與協作者 ),(實現),(一般性結構)。
25.創立型模式的根本意圖是要把(對象的創建)和(使用分離)的責任進行分離,從而降低系統的(耦合度)。
26.工廠模式分為(簡單工廠),(工廠方法),(抽象工廠)三種類型
27.門面模式是(迪米特)法則的典型運用
28.MVC模型的基本工作原理是基于(觀察者)模式,實現是基于(命令)模式
29.設計模式的思想根源是(開閉)基本原則的宏觀運用,本質上是沒有任何模式的,
???????發現模式的人永遠是大師,而死守模式的人,最對只能是一個工匠.
?
?
轉載于:https://www.cnblogs.com/WayneZeng/archive/2013/05/04/3059520.html
總結
- 上一篇: C#多线程学习(六) 互斥对象
- 下一篇: 设计模式 - Command