歷年系統架構設計師考試之設計模式試題-2012年
2012年系統架構設計師考試下午試題中出現了一道25分的設計模式大題,上午仍舊是5道選擇題,可以說是從2009年開考以來設計模式試題量最大的一年。Sunny友情建議:建議大家先做做這些試題,看是否能夠正確解答,如果在解答的同時能夠拿出具體的設計和實現方案,我相信一定會受益匪淺!,試題分析和參考答案為Sunny個人所作,可能與某些已釋出的“標準答案”會有所不同,如有不同意見,歡迎交流!【說明:為了體現試題的真實性,每一道試題的題號均保留原始真題題號】
2012年系統架構設計師考試設計模式考題如下:
【全國計算機技術與軟體專業技術資格(水平)考試 2012年下半年 系統架構設計師 上午試卷】
若系統中的某子模組需要為其他模組提供訪問不同資料庫系統的功能,這些資料庫系統提供的訪問介面有一定的差異,但訪問過程卻都是相同的,例如,先連線資料庫,再開啟資料庫,最後對資料進行查詢。針對上述需求,可以採用 (49) 設計模式抽象出相同的資料庫訪問過程,該設計模式 (50) 。
(49) A.外觀 B.裝飾 C.橋接 D.享元
(50) A.可以動態、透明地給單個物件新增職責
B.為子系統定義了一個高層介面,這個介面使得這一子系統更加容易使用
C.通過運用共享技術,有效支援大量細粒度的物件
D.將抽象部分與它的實現部分分離,使它們都可以獨立地變化
某軟體公司欲設計一款影象處理軟體,幫助使用者對拍攝的照片進行後期處理。在軟體需求分析階段,公司的系統分析師識別出了如下3個關鍵需求:
影象處理軟體需要記錄使用者在處理照片時所有動作,並能夠支援使用者動作的撤銷與重做等行為。
影象處理軟體需要根據當前正在處理的照片的不同特徵選擇合適的處理操作,處理操作與照片特徵之間具有較為複雜的邏輯關係。
影象處理軟體需要封裝各種影象處理演算法,使用者能夠根據需要靈活選擇合適的處理演算法;軟體還要支援高階使用者根據一定的規則新增自定義處理演算法。
在系統設計階段,公司的架構師決定採用設計模式滿足上述關鍵需求中對系統靈活性與擴充套件性的要求。具體來說,為了支援靈活的撤銷與重做等行為,採用 (51)
(51) A.工廠模式 B.責任鏈模式 C.中介者模式 D.命令模式
(52) A.狀態模式 B.介面卡模式 C.組合模式 D.單例模式
(53) A.模板方法模式 B.訪問者模式 C.策略模式 D.觀察者模式
【全國計算機技術與軟體專業技術資格(水平)考試 2012年下半年 系統架構設計師 下午試卷】
試題四(共25分)
閱讀以下關於面向物件系統建模的敘述,在答題紙上回答問題1至問題3。
【說明】
某軟體企業為影音產品銷售公司W開發一套線上銷售系統,以提升服務的質量和效率。專案組經過討論後決定採用面向物件方法開發該系統。在設計建模階段需要滿足以下設計要求:
(1) W公司經常進行促銷活動。根據不同的條件(如訂單總額、商品數量、產品種類等),公司可以提供百分比折扣或現金減免等多種促銷方式供提交訂單的使用者選擇。實現每種促銷活動的程式碼量很大,且會隨促銷策略不同經常修改。系統設計中需要考慮現有的促銷和新的促銷,而不用經常地重寫控制器類程式碼。
(2) 該線上銷售系統需要計算每個訂單的稅率,不同商品的稅率及計算方式會有所區別。所以W公司決定在系統中直接呼叫不同商品供應商提供的稅率計算類,但每個供應商的類提供了不同的呼叫方法。系統設計中需要考慮如果公司更換了供應商,應該儘可能少地在系統中修改或建立新類。
專案組架構師決定採用設計模式來滿足上述設計要求,並確定從當前已經熟練掌握的設計模式中進行選擇,這些設計模式包括:介面卡模式(Adapter)、構造器模式(Builder)、命令模式(Command)、外觀模式(Facade)、中介模式(Mediator)、原型模式(Prototype)、代理模式(Proxy)、狀態模式(State)和策略模式(Strategy)等。
【問題1】(6分)
設計模式按照其應用模式可以分為三類:建立型、結構型和行為型,請用200字以內文字說明三者的作用。
【問題2】(9分)
請將專案組已經掌握的設計模式按照其作用分別歸類到建立型、結構型和行為型模式中。
【問題3】(10分)
針對題目中所提出的設計要求(1)和(2),專案組應該分別選擇何種設計模式?請分別用200字以內文字說明具體的解決方案。
------------------------------------------------------------------------------------------------------------------------------------------------------
試題分析與解答將盡快釋出!
往年試題連結: