面向?qū)ο笤O(shè)計原則_第1頁
面向?qū)ο笤O(shè)計原則_第2頁
面向?qū)ο笤O(shè)計原則_第3頁
面向?qū)ο笤O(shè)計原則_第4頁
面向?qū)ο笤O(shè)計原則_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、、選擇題a。B)應(yīng)當(dāng)對修改開放,對擴(kuò)展關(guān)閉D)以上都不對1. 開放-關(guān)閉原則的含義是一個軟件實體(A )應(yīng)當(dāng)對擴(kuò)展開放,對修改關(guān)閉(C)應(yīng)當(dāng)對繼承開放,對修改關(guān)閉(2. 下列屬于面向?qū)ο笤O(shè)計基本原則的是(c)(A)繼承 (B)封裝(C)里氏代換 (D)都不是3. 對于違反里式代換原則的兩個類,可以采用的候選解決方案錯誤的是:(d)A.創(chuàng)建一個新的抽象類 C作為兩個具體類的超類, 將A和B共同的行為移動到 C中,從而 解決A和B行為不完全一致的問題。B將B到A的繼承關(guān)系改組成委派關(guān)系。C.區(qū)分是“忌”還是” Hasa”如果是“也”可以使用繼承關(guān)系, 如果是” Has a”應(yīng)該改成委 派關(guān)系D.以

2、上方案都錯誤4. 關(guān)于繼承表述錯誤的是:(d)A. 繼承是一種通過擴(kuò)展一個已有對象的實現(xiàn),從而獲得新功能的復(fù)用方法。B. 泛化類(超類)可以顯式地捕獲那些公共的屬性和方法。特殊類(子類)則通過附加屬性 和方法來進(jìn)行實現(xiàn)的擴(kuò)展。C破壞了封裝性,因為這會將父類的實現(xiàn)細(xì)節(jié)暴露給子類。D.繼承本質(zhì)上是 白盒復(fù)用”,對父類的修改,不會影響到子類。5. 對于依賴倒轉(zhuǎn)的表述錯誤的是()A. 依賴于抽象而不依賴于具體,也就是針對接口編程。B. 依賴倒轉(zhuǎn)的接口并非語法意義上的接口,而是,一個類對其他對象進(jìn)行調(diào)用時,所知道的 方法集合。C從選項B的角度論述,一個對象可以有多個接口。D.實現(xiàn)了同一接口的對象,可以在

3、運行期間,順利地進(jìn)行替換。而且不必知道所使用的對象 是哪個實現(xiàn)類的實例。6. 要依賴于抽象,不要依賴于具體。即針對接口編程,不要針對實現(xiàn)編程,是 D 的表述。A.開-閉原則B接口隔離原則 C里氏代換原則 D.依賴倒轉(zhuǎn)原則7. 依據(jù)設(shè)計的基本原則,程序開發(fā)中應(yīng)優(yōu)先使用的是a關(guān)系實現(xiàn)復(fù)用。A,組合委派 B.繼承C創(chuàng)建D.以上都不對8. 不要和陌生人說話”是 原則的通俗表述。A.接口隔離B.里氏代換 C依賴倒轉(zhuǎn) D.迪米特法則9. 面向?qū)ο蟮牧鶙l基本原則包括:開閉原則,里式替換原則,合成聚合原則、依賴倒轉(zhuǎn)、迪米特法則,以及 b。(A)單一職責(zé)原則、用戶視角原則(B)單一職責(zé)原則、接口隔離原則(C)接

4、口隔離原則、易用性原則(D)接口隔離原則、用戶視角原則10. 適配器模式,分為類的適配器和 a的適配器兩種實現(xiàn)。(A)對象(B)用例(C)接口( D)抽象類11. 面向?qū)ο笙到y(tǒng)中功能復(fù)用的兩種最常用技術(shù)是 a。(A)對象組合和類繼承(B)復(fù)制和粘貼(C)類繼承和抽取方法(D)對象組合和抽取方法12. 對象適配器模式是 a原則的典型應(yīng)用。(A) 合成聚合復(fù)用原則 (B)里式代換原則 (C)依賴倒轉(zhuǎn)原則 (D)迪米特法則13. 依據(jù)設(shè)計模式思想,程序開發(fā)中應(yīng)優(yōu)先使用 a_關(guān)系實現(xiàn)復(fù)用。A組合 B繼承C創(chuàng)建D擴(kuò)展14. 關(guān)于設(shè)計原則以下說法錯誤的是aA依賴倒置原則是指高層模塊應(yīng)該依賴于底層模塊,兩者

5、都依賴于具體的實現(xiàn)B里氏替換是說子類的行為必須與父類的行為保持一致C單一職責(zé)原則是說只有一個可以讓其改變的原因D迪米特法則的核心就是一個對象對其他對象有最少的了解二、問答題1. 請從接口隔離原則出發(fā)分析一下 看人下菜碟兒”這個說法的意義?看客人是誰再提供不同檔次的菜。 從接口隔離原則的角度出發(fā), 根據(jù)客戶需要的不同, 而為 不同的客戶提供不同的服務(wù)2. 在設(shè)計原則中,依賴倒置原則的主要內(nèi)容是什么?A. 高層次的模塊不應(yīng)該依賴于低層次的模塊,他們都應(yīng)該依賴于抽象。B. 抽象不應(yīng)該依賴于具體實現(xiàn),具體實現(xiàn)應(yīng)該依賴于抽象。3. 請舉例說明開放-關(guān)閉原則是如何應(yīng)用的,并畫出相應(yīng)類圖。4. 請說明下面的

6、一段代碼,違反了什么設(shè)計原則,應(yīng)如何修改。public class SuperDasbboard extends JFrame implements MetaDataUser public Coinponent getLastFccusedCoinponent()public void setLastFacused(Component lastFocused)public int getMajorVersionNujnber ()public int getMinarVersionNumber()public int getHuildNumber答:違反了單一職責(zé)原則將與版本相關(guān)的方法提取到一

7、個類中。public class Version (public int getMajorVersionNumber() public int getMinorVersionNumber() public int getBuildNumber()5. 請優(yōu)化下面的設(shè)計方案,使其能夠不依賴于具體實現(xiàn),并說明運用了什么設(shè)計原則。Copykeyboairdireader : Keyboard Reads r 實p lintvrwrt vr PrirrterWnl w*copy(keytoar(iReader Key board Reader, prmerwrrter PnnrerWriter)Key

8、board ReaderPrint&rWm&r答:依賴倒置原則6. 請說明策略模式實際上應(yīng)用了什么設(shè)計原則,并簡單描述該原則的內(nèi)容。7. 請指出下圖在設(shè)計上違反了什么原則,并給出優(yōu)化方案。CliwiLA*聞由訊亦0 vo*d + offiratorB ( vid + ooecatcrC 卄 void+ ofwatorAO - void + opA-gtofg :) - KCid + OfWSIOfC :. z答:接口隔離原則8. 請指出下圖違反了什么設(shè)計原則,并簡單描述該原則的內(nèi)容。XMLTra-sfcrmerMainClassmain Stnng args) voia+ main (Stri

9、ng angs voicXLSTrartsformer答:依賴倒置原則Oa 他殆 p soune rsojr&Nafns *吐j- vF4arr&吹LlLFaiBlamrlranslomerHa忸A(yù)bstcKtSofCBAbstcKtSofCBTextSourceKMLTranstrerIXLSTraFisfcrmerXLSTraFisfcrmerH 3IHCI3SS+ main (Svmg args(D void9. 請指出下圖違反了什么設(shè)計原則,并簡單描述該原則的內(nèi)容。Form?Fu ni3答迪米特法則DAO3FarmFarrwFaim4Control er1DQDAO3DAC4Contr

10、ol er1DAO3DAC4Contrcller210. 企鵝(Penguin)有皮毛(hasFeather),有翅膀(hasWings),會下蛋(layEgg),但是不 會飛行(fly)。因此企鵝是一種特殊的鳥類( Bird)。請仔細(xì)查看下面的設(shè)計方案,請指出這 個方案違反了什么設(shè)計原則?請給出修改后的方案。Bird -hasFeather-hasWings +layEgg()+fly()void fly()/do nothing里氏替換原則(LSP)把bird中fly ()方法去掉11. Sunny軟件公司開發(fā)的 CRM系統(tǒng)原先可以顯示兩種類型的圖表,如餅狀圖(PieChart)和柱狀圖(BarChart),后來用戶希望系統(tǒng)能夠支持更多種類的圖表顯示方式,例如增加Lin eChart,我們應(yīng)該如何設(shè)計這個方案?請給出這個方案的類圖,并用文字說明該方案的合理性。通過抽象化的方式對系統(tǒng)進(jìn)行重構(gòu),使之增加新的圖表類時無須修改源

溫馨提示

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

評論

0/150

提交評論