面向?qū)ο蠓治雠c設(shè)計復(fù)習(xí)題昆明理工大學(xué)樣本_第1頁
面向?qū)ο蠓治雠c設(shè)計復(fù)習(xí)題昆明理工大學(xué)樣本_第2頁
面向?qū)ο蠓治雠c設(shè)計復(fù)習(xí)題昆明理工大學(xué)樣本_第3頁
面向?qū)ο蠓治雠c設(shè)計復(fù)習(xí)題昆明理工大學(xué)樣本_第4頁
面向?qū)ο蠓治雠c設(shè)計復(fù)習(xí)題昆明理工大學(xué)樣本_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蠓治雠c設(shè)計習(xí)題一、單項選取題1.到20世紀(jì)末,面向?qū)ο筌浖こ桃呀?jīng)逐漸發(fā)展成熟,特別是(D)形成和廣泛使用,采用面向?qū)ο蠓治雠c編程軟件開發(fā)辦法已成為軟件開發(fā)主流辦法。A.Simula67語言B.Smalltalk語言C.Java語言D.統(tǒng)一建模語言(UML)原則2.面向?qū)ο筮\動產(chǎn)生了各種面向?qū)ο笳Z言,其中(C)是一種混合性面向?qū)ο笳Z言,既支持面向過程程序設(shè)計辦法,又支持面向?qū)ο蟪绦蛟O(shè)計辦法,有廣泛應(yīng)用基本和豐富開發(fā)環(huán)境支持,因而使面向?qū)ο蟪绦蛟O(shè)計能得到不久普及。A.SmalltalkB.EiffelC.C++D.Java3.下列不屬于面向?qū)ο蠹夹g(shù)基本特性是(B)。A.封裝性B.模塊性C.多態(tài)性D.繼承性4.面向?qū)ο蟪绦蛟O(shè)計將描述事物數(shù)據(jù)與(C)封裝在一起,作為一種互相依存、不可分割整體來解決。A.信息B.數(shù)據(jù)隱藏C.對數(shù)據(jù)操作D.數(shù)據(jù)抽象5.關(guān)于面向?qū)ο筠k法長處,下列不對的論述是(C)。A.與人類習(xí)慣思維辦法比較一致B.可重用性好C.以數(shù)據(jù)操作為中心D.可維護性好6.(D)是從顧客使用系統(tǒng)角度描述系統(tǒng)功能圖形表達辦法。A.類圖B.對象圖C.序列圖D.用例圖7.(C)是表達系統(tǒng)類及其互相聯(lián)系圖示,它是面向?qū)ο笤O(shè)計核心,建立狀態(tài)圖、協(xié)作圖和其她圖基本。A.對象圖B.組件圖C.類圖D.配備圖8.(D)描述了一組交互對象間動態(tài)協(xié)作關(guān)系,它表達完畢某項行為對象和這些對象之間傳遞消息時間順序。A.對象圖B.協(xié)作圖C.狀態(tài)圖D.序列圖9.(D)就是用于表達構(gòu)成分布式系統(tǒng)節(jié)點集和節(jié)點之間聯(lián)系圖示,它可以表達系統(tǒng)中軟件和硬件物理架構(gòu)。A.組件圖B.協(xié)作圖C.狀態(tài)圖D.配備圖10.使用UML進行關(guān)系數(shù)據(jù)庫(B)時,需要設(shè)計出表達持久數(shù)據(jù)實體類及其聯(lián)系,并把它們映射成為關(guān)系數(shù)據(jù)庫表(Table)、視圖(View)等。A.業(yè)務(wù)UseCase模型設(shè)計B.邏輯數(shù)據(jù)模型設(shè)計C.物理數(shù)據(jù)模型設(shè)計C.物理實現(xiàn)設(shè)計11.一種設(shè)計得好OO系統(tǒng)具備(B)A.低內(nèi)聚、低耦合特性 B.高內(nèi)聚、低耦合特性C.高內(nèi)聚、高耦合特性 D.低內(nèi)聚、高耦合特性12.下面()不是UML基本構(gòu)成元素。(A)A.控制語言 B.基本構(gòu)造塊 C.規(guī)則 D.公共機制13.面向?qū)ο筇攸c重要概括為(C)。A.可分解性、可組合性、可分類性 B.繼承性、封裝性、多態(tài)性C.抽象性、繼承性、封裝性、多態(tài)性D.封裝性、易維護性、可擴展性、可重用性14.構(gòu)成對象兩個重要因素是(A)。A.屬性和服務(wù) B.標(biāo)記和內(nèi)容 C.繼承和多態(tài) D.消息和封裝15.下列關(guān)于面向?qū)ο筠k法中描述中錯誤是(C)。A.使用設(shè)計模式有助于在軟件開發(fā)中應(yīng)用面向?qū)ο蠹夹g(shù)B.選取面向?qū)ο蟪绦蛟O(shè)計語言時需要考慮開發(fā)人員對其熟悉限度C.UML作為一種可視化建模語言需要與RUP開發(fā)過程同步使用D.當(dāng)前在軟件生命周期分析、設(shè)計、實現(xiàn)和測試中均可以應(yīng)用面向?qū)ο筠k法16.順序圖重要可覺得設(shè)計人員提供(A)信息。A.消息發(fā)送順序 B.某個辦法執(zhí)行流程C.類之間關(guān)聯(lián)關(guān)系多重性 D.某個對象在不同狀態(tài)之間轉(zhuǎn)移17.類和接口關(guān)系類似于下面哪種類型關(guān)系(D)。A.關(guān)聯(lián)(association)和匯集(aggregation)B.關(guān)聯(lián)(association)和組合(composition)C.腳本(scenario)和用例(usecase)D.包(Package)和子系統(tǒng)(subsystem)18.在類圖中,那個類圖中類Order所生成代碼具備PublicclassOrder{PublicCustomerrecipient;}形式?(A)A.B.C.D.19.下面那個圖符表達UML中實現(xiàn)關(guān)系?(C)A.B.C.D.20.一種銀行業(yè)務(wù)系統(tǒng)采用如圖瑣事配備圖,則錯誤是(D)A.與GUI關(guān)于類應(yīng)當(dāng)布置在BranchClient上B.這個圖表達一種三層體系構(gòu)造,不論BranchClient、FinancialAppServer、DatabaseServer是運營在同一臺機器上還是在不同機器上C.為了系統(tǒng)可伸縮性(scalability),與業(yè)務(wù)邏輯關(guān)于對象應(yīng)當(dāng)布置在FinancialAppServer上D.為了系統(tǒng)可伸縮性,與業(yè)務(wù)邏輯關(guān)于對象應(yīng)當(dāng)布置在BranchClient上21.關(guān)于用例與類對比中(D)是錯誤。A都屬于模型構(gòu)造元素B都存在繼承關(guān)系C類描述系統(tǒng)某些靜態(tài)視圖,用例描述系統(tǒng)動態(tài)行為視圖D類描述是系統(tǒng)內(nèi)部構(gòu)成,用例也可以描述系統(tǒng)內(nèi)部構(gòu)成22.Innovation公司正在為Rose開發(fā)插入件,使得Rose可以把OOA、OOD模型以各種圖形格式導(dǎo)出,如JPEG格式、BMP格式、GIF格式等。在導(dǎo)出時,會依照不同算法來生成相應(yīng)圖形文獻,這些算法很復(fù)雜。為了描述這些算法,在下面這些圖中,那個是最適合?(A)(注:活動圖可以用來描述細節(jié))A.活動圖 B.狀態(tài)圖 C.類圖 D.用例圖23.計算機(Computer)由中央解決器、內(nèi)存、軟盤、硬盤、顯示屏、鍵盤、鼠標(biāo)等構(gòu)成。那么Computer類和其她類(CPU、RAM、FloppyDrive、HardDisk、Monitor、Keyboard、Mouse)之間關(guān)系是:(D)A.泛化關(guān)系(Generalization) B.實現(xiàn)關(guān)系(Realization)C.包括關(guān)系(Inclusion) D.匯集關(guān)系(Aggregation)24.在狀態(tài)圖中不能表達下面那些概念?(D)A.動作(action) B.事件(event) C.轉(zhuǎn)移(transition) D.類(class)25.在數(shù)據(jù)庫設(shè)計階段開始考慮詳細數(shù)據(jù)庫管理系統(tǒng)(DBMS)特性。(C)A.需求分析 B.概念設(shè)計 C.邏輯設(shè)計 .D物理設(shè)計26.在UML中,有3種基本構(gòu)造塊,分別是(A)

A.事物、關(guān)系和圖B.注釋、關(guān)系和圖

C.事物、關(guān)系和構(gòu)造D.注釋、關(guān)系和構(gòu)造27.在UML中,有四種關(guān)系,下面哪個不是(B)

A.依賴關(guān)系B.繼承關(guān)系C.泛化關(guān)系D.實現(xiàn)關(guān)系28.下面哪個不是UML中靜態(tài)視圖()

A.狀態(tài)圖B.用例圖C.對象圖D.類圖29.在用例之間,會有三種不同關(guān)系,下列哪個不是它們之間也許關(guān)系(D)A.包括(include)B.擴展(extend)

C.泛化(generalization)D.關(guān)聯(lián)(connect)30.用例(Use-case)用來描述系統(tǒng)在事件做出響應(yīng)時所采用行動。用例之間是具備有關(guān)性。在一種“訂單輸入子系統(tǒng)”中,創(chuàng)立新訂單和更新訂單都需要檢查顧客帳號與否對的。那么,用例“創(chuàng)立新訂單”、“更新訂單”與用例“檢查顧客帳號”之間是(B)關(guān)系

A.擴展(extend)B.包括(include)

C.分類(classification)D.匯集(aggregation)31.UML中類有三種,下面哪個不是其中之一(B)

A.實體類B.抽象類C.控制類D.邊界類32.閱讀圖例,判斷下列哪個說法是錯誤。(c)

A.讀者可以使用系統(tǒng)還書用例

B.每次執(zhí)行還書用例都要執(zhí)行圖書查詢用例

C.每次執(zhí)行還書用例都要執(zhí)行交納罰金用例

D.執(zhí)行還書用例有也許既執(zhí)行圖書查詢用例,又執(zhí)行交納罰金用例33.關(guān)于協(xié)作圖描述,下列哪個不對的(B)

A.協(xié)作圖作為一種交互圖,強調(diào)是參加交互對象組織;

B.協(xié)作圖是順序圖一種特例

C.協(xié)作圖中有消息流順序號;

D.在ROSE工具中,協(xié)作圖可在順序圖基本上按“F5”34.設(shè)計模式具備長處(a)。 A.適應(yīng)需求變化B.程序易于理解 C.減少開發(fā)過程中代碼開發(fā)工作量D.簡化軟件系統(tǒng)設(shè)計35.設(shè)計模式普通用來解決什么樣問題(a)。 A.同一問題不同表相B不同問題同一表相 C.不同問題不同表相D.以上都不是36.設(shè)計模式兩大主題是(d)。 A.系統(tǒng)維護與開發(fā)B對象組合與類繼承 C.系統(tǒng)架構(gòu)與系統(tǒng)開發(fā)D.系統(tǒng)復(fù)用與系統(tǒng)擴展37.如下哪些問題通過應(yīng)用設(shè)計模式不可以解決。(c) A)指定對象接口B)針對接口編程 C)擬定軟件功能都正的確現(xiàn)D)設(shè)計應(yīng)支持變化38.外觀模式作用是(b)。 A.當(dāng)不能采用生成子類辦法進行擴充時,動態(tài)地給一種對象添加某些額外功能。 B.為了系統(tǒng)中一組功能調(diào)用提供一種一致接口,這個接口使得這一子系統(tǒng)更加容易使用。 C.保證一種類僅有一種實例,并提供一種訪問她全局訪問點。 D.在辦法中定義算法框架,而將算法中某些操作環(huán)節(jié)延遲到子類中實現(xiàn)。39.Fa?ade(外觀)模式意圖是(a)。 A.但愿簡化既有系統(tǒng)用法。你需要定義自己借口。 B.將一種無法控制既有對象與一種特定借口相匹配。 C.將一組實現(xiàn)某些從另一組使用它們對象中分離出來。 D.你需要為特定客戶(或狀況)提供特定系列對象。40.Adapter(適配器)模式意圖是(B)。 A.但愿簡化既有系統(tǒng)用法。你需要定義自己借口。 B.將一種無法控制既有對象與一種特定借口相匹配。 C.將一組實現(xiàn)某些從另一組使用它們對象中分離出來。 D.你需要為特定客戶(或狀況)提供特定系列對象。41.下面不屬于創(chuàng)立型模式有(C)。 A.抽象工廠模式(AbstractFactory) B.工廠辦法模式(FactoryMethod) C.適配器模式(Adapter) D.單例模式(Singleton)42.將一種類接口轉(zhuǎn)換成客戶但愿另一種接口。這句話是對下列哪種模式描述(C)。 A.方略模式(Strategies) B.橋接模式(Bridge) C.適配器模式(Adapter) D.單例模式(Singleton)43.如下關(guān)于構(gòu)造型模式說法不對的是。(B) A)構(gòu)造型模式可以在不破壞類封裝性基本上,實現(xiàn)新功能。 B)構(gòu)造型模式重要用于創(chuàng)立一組對象。 C)構(gòu)造型模式可以創(chuàng)立一組類統(tǒng)一訪問接口。 D)構(gòu)造型模式可以在不破壞類封裝性基本上,使得類可以同不曾預(yù)計到系統(tǒng)進行交互。44.關(guān)于繼承表述錯誤是:(D)。 A.繼承是一種通過擴展一種已有對象實現(xiàn),從而獲得新功能復(fù)用辦法。 B.泛化類(超類)可以顯式地捕獲那些公共屬性和辦法。特殊類(子類)則通過附加屬性和辦法來進行實現(xiàn)擴展。 C.在一定意義上說破壞了封裝性,由于這會將父類實現(xiàn)細節(jié)暴露給子類。 D.繼承本質(zhì)上是“白盒復(fù)用”,對父類修改,不會影響到子類。45.在不破壞類封裝性基本上,使得類可以同不曾預(yù)計到系統(tǒng)進行交互。重要體當(dāng)前(D)。 A外觀模式(Facade)B裝飾模式(Decorator) C方略模式(Strategies)D橋接模式(Bridge)46.行為類模式使用(B)在類間分派行為。 A接口B繼承機制C對象組合D委托47.下面類圖表達是哪個設(shè)計模式?(D)。 A抽象工廠模式(AbstractFactory)B觀測者模式(Observer) C方略模式(Strategies)D橋接模式(Bridge) 48.Bridge(橋接)模式意圖是(C)。 A.但愿簡化既有系統(tǒng)用法。你需要定義自己借口。 B.將一種無法控制既有對象與一種特定借口相匹配。 C.將一組實現(xiàn)某些從另一組使用它們對象中分離出來。 D.你需要為特定客戶(或狀況)提供特定系列對象。49.靜態(tài)工廠核心角色是(A)。 A.抽象產(chǎn)品 B.詳細產(chǎn)品 C.靜態(tài)工廠 D.消費者50.如下屬于創(chuàng)立型模式是(A)。 A抽象工廠模式(AbstractFactory)B裝飾模式(Decorator) C外觀模式(Facade)D橋接模式(Bridge)51.下面類圖表達是哪個設(shè)計模式?(A)。 A抽象工廠模式B觀測者模式 C方略模式D橋接模式 52.AbstractFactory(抽象工廠)模式意圖是(D)。 A.但愿簡化既有系統(tǒng)用法。你需要定義自己借口。 B.將一種無法控制既有對象與一種特定借口相匹配。 C.將一組實現(xiàn)某些從另一組使用它們對象中分離出來。 D.提供一種創(chuàng)立一系列有關(guān)或互相依賴對象接口,而無需指定它們詳細類53.在依照不同機器選取設(shè)備驅(qū)動程序案例中,如下論述不精確是(D)。 A.可以使用switch語句選取驅(qū)動程序. B.可以使用繼承來實現(xiàn)選取驅(qū)動程序,但它也許會產(chǎn)生類組合爆炸問題.. C.可以選取抽象工廠模式實現(xiàn),且能避免組合爆炸問題. D.使用繼承解決方案要比switch語句有更多優(yōu)勢.54.應(yīng)用設(shè)計模式一種長處是(A)。 A.適應(yīng)需求變化B.程序易于理解 C.減少開發(fā)過程中代碼開發(fā)工作量D.簡化軟件系統(tǒng)設(shè)計55.當(dāng)咱們想創(chuàng)立一種詳細對象而又不但愿指定詳細類時,可以使用(A)模式。 A.創(chuàng)立型B.構(gòu)造型C行為型D.以上都可以56.在觀測者模式中,表述錯誤是(C)。 A.觀測者角色更新是被動。 B.被觀測者可以告知觀測者進行更新 C.觀測者可以變化被觀測者狀態(tài),再由被觀測者告知所有觀測者根據(jù)被觀測者狀態(tài)進行。 D.以上表述所有錯誤。57.下面類圖表達是哪個設(shè)計模式?(D)。 A方略模式(Strategies)B裝飾模式(Decorator) C橋接模式(Bridge)D觀測者模式(Observer) 58.當(dāng)咱們想創(chuàng)立一種詳細對象而又不但愿指定詳細類時,可以使用(A)模式。 A.創(chuàng)立型B.構(gòu)造型 C行為型D.以上都可以59.下列模式中,屬于行為模式是(B)。 A.工廠模式B觀測者 C適配器D以上都是60.Observer模式不合用于(D)。 A當(dāng)一種抽象模型存在兩個方面,其中一種方面依賴于另一方面,將這兩者封裝在獨立對象中以使它們可以各自獨立變化和復(fù)用。 B當(dāng)對一種對象變化需要同步變化其她對象,而不懂得詳細有多少個對象有待變化時。 C當(dāng)一種對象必要告知其他對象,而它又不能假定其他對象是誰,也就是說你不但愿這些對象是緊耦合。 D一種對象構(gòu)造包括諸多類對象,它們有不同接口,而想對這些對象實行某些依賴于其詳細類操作。二、判斷題1.一種狀態(tài)圖最多只能由一種初態(tài)和一種終態(tài)。(F)2.協(xié)作圖中消息必要要有消息順序號。(T)3.兩個參加者(actor)之間可以有包括(include)關(guān)系、擴展(extend)關(guān)系或泛化(generalization)關(guān)系,而包括關(guān)系和擴展關(guān)系是依賴(dependency)關(guān)系版型。(F)4.參加者(actor)和用例(usecase)之間關(guān)系是關(guān)聯(lián)(association)關(guān)系。(T)5.類A和類B之間關(guān)系如圖1所示,則稱類B中g(shù)etName()辦法是對類A中g(shù)etName()辦法重載(overload)。(F)圖1getName()辦法之間關(guān)系圖2活動圖6.如圖2所示,活動Gesture和Streamaudio可以并發(fā)進行。(T)7.一種軟件系統(tǒng),如果只有源代碼,缺少其她相應(yīng)輔助文檔,如缺少順序圖和類圖,則可以運用Rose進行逆向工程得到順序圖和類圖,但得到順序圖和類圖會比較簡樸。(F)8.CMM描述了五個級別軟件過程成熟度,即初始級、可重復(fù)級、已定義、已管理級、優(yōu)化級。(T)9.UML由用例視圖、物理視圖、組件視圖、進度視圖和配備視圖構(gòu)成。(F)10.在設(shè)計類圖時,可以不用對類圖中每個關(guān)聯(lián)進行命名,但如果需要命名話,最佳用一種“動詞”給關(guān)聯(lián)命名。(T)11.適配器模式屬于創(chuàng)立型模式。(F)12.在設(shè)計模式中,“效果”只是指“因素和成果”。(T)13.設(shè)計模式使代碼編制不能真正工程化。(F)14.設(shè)計模式兩大主題是系統(tǒng)復(fù)用與系統(tǒng)擴展。(T)15.Fa?ade(外觀)模式不但可覺得辦法調(diào)用創(chuàng)立更簡樸接口,還可以減少客戶必要解決對象數(shù)量。(T)16.外觀模式,當(dāng)不能采用生成子類辦法進行擴充時,動態(tài)地給一種對象添加某些額外功能。(F)17.Fa?ade模式為子系統(tǒng)中一組接口提供界面也許不一致。(F)18.Fa?ade外觀模式只能為辦法調(diào)用創(chuàng)立更簡樸接口,不能減少客戶必要解決對象數(shù)量。(F)19.對象適配器模式是合成聚合復(fù)用原則典型應(yīng)用。(T)20.Adapter模式使原本由于接口不兼容而不能一起工作那些類可以一起工作。(T)21.Fa?ade模式和Adapter模式是相似類型包裝器。(F)22.Adapter模式不是必要針對某個接口進行設(shè)計。(F)23.繼承本質(zhì)上是“白盒復(fù)用”,對父類修改,不會影響到子類。(F)24.繼承是一種通過擴展一種已有對象實現(xiàn),從而獲得新功能復(fù)用辦法。(t)25.抽象工廠模式提供了一系列有關(guān)或互相依賴對象接口且必要指定她們詳細類。(F)26.AbstractFactory(抽象工廠)模式保證系統(tǒng)總能依照當(dāng)前狀況獲得適當(dāng)對象。(T)27.在AbstractFactory(抽象工廠)模式中,客戶對象不需要懂得“向誰祈求需要對象”“如何使用這些對象”。(F)28.Decorator(裝飾)模式意圖是為一種對象連接附加職責(zé)。(F)29.每個Decorator對象在被裝飾功能之前或之后執(zhí)行自己附加功能。(T)30.Decorator(裝飾)模式合用性是表達對象某些-整體層次構(gòu)造。(F)三、填空題1.面向?qū)ο箝_發(fā)辦法一改過去老式以___功能分析___為基本__面向過程__構(gòu)造化分析與設(shè)計辦法,它模仿人們理解和解決客觀世界方式來分析問題,把系統(tǒng)視為一系列__對象_集合,其__面向?qū)ο笤O(shè)計__又將分析成果映射到某種面向?qū)ο髮崿F(xiàn)工具構(gòu)造上,使映射過程有著比較直接相應(yīng)關(guān)系,使分析者、設(shè)計者和編程者都可使用相似_概念_,從而使面向?qū)ο筌浖_發(fā)能比較自然地模仿客觀世界活動,使問題描述空間與_解空間__在構(gòu)造上盡量一致。因而,采用面向?qū)ο筠k法可以更有效地開發(fā)大型軟件系統(tǒng)。面向?qū)ο筠k法_封裝_、_繼承_、__多態(tài)_等機制不但支持軟件復(fù)用,并且使軟件維護工作可靠有效,可實現(xiàn)軟件系統(tǒng)柔性制造,更好地克服_軟件危機__。因而,它已成為成熟廣為采用軟件開發(fā)辦法。2.對象是客觀實體抽象表達,是由__描述對象屬性數(shù)據(jù)__和_對這些數(shù)據(jù)進行操作行為__兩某些構(gòu)成。而_類_是對具備相似屬性和行為一組對象抽象描述。因而,它可作為一種顧客自定義類型和創(chuàng)立對象樣板,而按照這種樣板所創(chuàng)立一種個詳細對象就是類__實例__。通過_繼承__關(guān)系又可形成一種類層次構(gòu)造。3.UML中用于描述系統(tǒng)靜態(tài)建模視圖稱為靜態(tài)視圖,涉及_用例圖__、_類圖__、_對象圖__、__包圖__和__構(gòu)件圖_。4.UML從不同視角為系統(tǒng)架構(gòu)建模,可產(chǎn)生九種視圖:________________、_________________、_________________、________________、________________、_________________、________________、_________________、_________________。5.________________是用來反映若干個對象之間動態(tài)協(xié)作關(guān)系一種交互圖。它重要反映對象之間已發(fā)送消息先后順序和對象之間交互過程。________________是用來描述實現(xiàn)某些服務(wù)所涉及對象及其互相之間關(guān)系(涉及消息通信)動態(tài)視圖。建模者可以選取______________________________來反映對象之間協(xié)作關(guān)系;如果需要強調(diào)時間和序列,最佳選取________________;如果需要強調(diào)上下文有關(guān),最佳選取________________。6.適配器模式,分為類適配器和對象適配器兩種實現(xiàn)。其中類適配器采用是繼承關(guān)系,而對象適配器采用是(組合聚合)關(guān)系。7.Adapter模式有兩種類型有:對象Adapter模式、(類Adapter模式)。8.UML是一種用來創(chuàng)立(程序模型)圖像語言。9.(Adapter適配器)模式使原本接口不兼容而不能一起工作類可以一起工作。10.適配器模式,分為類適配器和對象適配器兩種實現(xiàn)。其中類適配器采用是(繼承)關(guān)系,而對象適配器采用是組合聚類關(guān)系。11.在存在繼承關(guān)系狀況下,辦法向(超類方向)集中,而數(shù)據(jù)向(子類)方向集中。12.在進行設(shè)計以應(yīng)對變化過程中,應(yīng)當(dāng)遵循兩條基本方略:找出變化并(封裝變化點);優(yōu)先使用對象組合,而不是類繼承。13.封裝性好代碼更容易測試,由于它與其她代碼沒有(耦合)。14.(抽象工廠)模式提供了一系列有關(guān)或互相依賴對象接口而無需指定她們詳細類。15.工廠模式分為簡樸工廠,工廠辦法,(工廠辦法)三種類型。四.簡答題1.簡述面向?qū)ο筌浖_發(fā)辦法長處。2.簡述面向?qū)ο蠹夹g(shù)三大機制。答:(1)封裝性(encapsulation)所謂封裝就是把對象屬性和行為結(jié)合成一種獨立單位,使外界不能直接訪問或修改這些數(shù)據(jù)和代碼,外界只能通過對象提供接口函數(shù)來變化或獲取對象屬性數(shù)據(jù),這就實現(xiàn)了消息隱蔽。(2)繼承性如果在一種已定義類上,增長某些特殊屬性或操作,可以形成一種新類,這個類不但繼承了前一種類所有特性,并且具備新特性,因而可看作前一種類特例,是對前一種類繼承。前一種類稱為父類,新產(chǎn)生類叫做子類。通過繼承關(guān)系可形成一種類層次構(gòu)造,叫做繼承構(gòu)造。(3)多態(tài)性在類層次構(gòu)造不同類中,可用相似函數(shù)名實現(xiàn)功能不同函數(shù)。3.簡述OOA模型層次構(gòu)造。答:OOA模型采用五層次構(gòu)造,它們分別是:(1)對象-類層劃分待開發(fā)系統(tǒng)及其環(huán)境信息基本構(gòu)造單位,標(biāo)出反映問題域?qū)ο蠛皖悾⒂梅栠M行規(guī)范描述,用信息提供者熟悉術(shù)語為對象和類命名。(2)屬性層定義對象和某些構(gòu)造中數(shù)據(jù)單元,繼承構(gòu)造中所有類公共屬性可放于通用類中。標(biāo)記對象類必須屬性并放在適當(dāng)繼承層次上,屬性特殊限制和實例連接關(guān)系也應(yīng)標(biāo)記出來。(3)服務(wù)層表達對象服務(wù)或行為,即是要定義類上操作。(4)構(gòu)造層標(biāo)記現(xiàn)實世界中對象之間關(guān)系。當(dāng)一種對象是另一種對象一某些時,用"整體-某些"關(guān)系表達;當(dāng)一種類屬于另一種類時,用類之間繼承關(guān)系表達。(5)主題層可將有關(guān)類或?qū)ο髣澐譃橐环N主題。4.簡述OOD模型總體構(gòu)造,并畫圖表達。OOD體系構(gòu)造各個某些內(nèi)容:(1)問題論域某些,在OOA模型基本上,細化分析成果,設(shè)計一組構(gòu)成底層應(yīng)用模型類和對象。(2)人機交互某些:設(shè)計顧客界面模型,該顧客界面模型中類和對象提供實現(xiàn)人機交互操作接口函數(shù)。顧客界面設(shè)計涉及菜單設(shè)計、窗口設(shè)計、輸入/輸出界面設(shè)計等等。(3)任務(wù)管理某些:建立某些類,用以負責(zé)解決操作系統(tǒng)級并發(fā)問題、中斷、調(diào)度以及其他與特定平臺關(guān)于問題。(4)數(shù)據(jù)管理某些:提供數(shù)據(jù)管理系統(tǒng)中存儲和檢索對象基本構(gòu)造,涉及對永久性數(shù)據(jù)訪問和管理。數(shù)據(jù)管理設(shè)計涉及:—數(shù)據(jù)存儲設(shè)計:數(shù)據(jù)存儲設(shè)計選取數(shù)據(jù)存儲方式(文獻存儲、關(guān)系數(shù)據(jù)庫表格存儲或面向?qū)ο髷?shù)據(jù)庫存儲)?!O(shè)計相應(yīng)操作。為每個需要存儲對象和類增長用于存儲管理屬性和操作,在類和對象定義中加以描述。5.分析下面類圖,畫出新類圖,將原圖中多對多關(guān)系轉(zhuǎn)換為1:M(一對多)關(guān)系。答案:6.信用卡也許處在“開放”和“關(guān)閉”狀態(tài),其中“開放”狀態(tài)可以直接進入“關(guān)閉”狀態(tài),而從“關(guān)閉”狀態(tài)必要提供密碼驗證才干進入“開放”狀態(tài)?!伴_放”狀態(tài)又涉及“透支”和“正?!睜顟B(tài)之間變化,當(dāng)剩余金額少于零、或者使用額度不不大于剩余金額、或者結(jié)算余額不大于零時進入透支狀態(tài),反之則為正常狀態(tài)。畫出信用卡狀態(tài)圖。(6分)7.請判斷如下類圖中類關(guān)系與否適當(dāng),并闡明理由。(1)飛機有機翼、機身、駕駛艙(2)商場里電器。1臺電器可以是1臺洗衣機,也可以不是;1臺電器可以是1臺電視機,也可以不是;1臺電器可以是1臺空調(diào),也可以不是;(3)公司員工諸多,涉及程序員、分析員、項目經(jīng)理……(1)飛機有機翼、機身、駕駛艙應(yīng)改為“組合”(2)商場里電器。1臺電器可以是1臺洗衣機,也可以不是;1臺電器可以是1臺電視機,也可以不是;1臺電器可以是1臺空調(diào),也可以不是;應(yīng)當(dāng)為“泛化”(3)公司員工諸多,涉及程序員、分析員、項目經(jīng)理……應(yīng)改為“泛化”8.假設(shè)你從垃圾堆里撿到這樣一張小紙片(如下圖所示)。依照既有信息盡量判斷:(1)“小車”類有哪幾種操作?(2)“指揮小車UC”類“執(zhí)行任務(wù)”操作要做哪些工作?(采用偽代碼描述)圖時序圖參照答案:(1)“小車”類有哪幾種操作?返回小車當(dāng)前位置()轉(zhuǎn)向和邁進()(2)“指揮小車UC”類“執(zhí)行任務(wù)”操作要做哪些工作?(采用偽代碼描述)移動任務(wù):更新行走斷表和目地()移動任務(wù):判斷既有信息足以讓小車行走()小車:放回小車當(dāng)前位置()小車:驗證小車尚未到達目地()移動:依照但前位置及斷表信息計算出速度、角度()小車:轉(zhuǎn)向和邁進()9.簡述統(tǒng)一建模語言UML長處。10.簡述面向?qū)ο蠹夹g(shù)三大機制。11.簡述面向?qū)ο蠓治龌经h(huán)節(jié)。12.簡述OOD模型總體構(gòu)造,并畫圖表達。13.應(yīng)用UML進行系統(tǒng)分析和設(shè)計所需建立視圖有那幾種?14.簡述“開—閉”原則基本思想。請舉出一種使用了軟件“開—閉”原則軟件設(shè)計模式,其中何處體現(xiàn)了“開—閉”原則。答:“開—閉”原則:軟件實體應(yīng)當(dāng)對擴展開放,而對修改關(guān)閉,“開-閉”原則規(guī)定軟件系統(tǒng)可以在不需要修改原有類基本上,通過增長類達到擴展功能目。Abstractfactory體現(xiàn)了這個原則,如果想增長一類新products,只需在product類體系中增長各個products,然后在factory類體系構(gòu)造中增長一種concretefactory就可以了,而不需要對既有類做任何修改,TheOpen-closedprinciple[ocp]在不改動過模塊源代碼狀況下擴展模塊行為。軟件實體(類模塊函數(shù)等)應(yīng)當(dāng)是可以擴展,但是不可以修改。15.簡述依賴?yán)D(zhuǎn)原則基本思想。請舉出一種使用了軟件依賴原則軟件設(shè)計模式,其中何處體現(xiàn)了依賴原則。答:依賴倒置原則基本思想是:①高層模塊不應(yīng)當(dāng)依賴于低層模塊,兩者都應(yīng)當(dāng)依賴于抽象。②抽象不應(yīng)當(dāng)依賴于細節(jié),細節(jié)應(yīng)當(dāng)不依賴于抽象。Tomplatemethod就體現(xiàn)了這個原則,它定義了一種操作中算法骨架,而將某些環(huán)節(jié)延遲到子類中,templatemethod使得子類不變化一種算法構(gòu)造,即可重定義該算法某些特定環(huán)節(jié)。16.什么是單一職責(zé)原則?請舉出一種使用了單一職責(zé)原則軟件設(shè)計模式,其中何處體現(xiàn)了單一職責(zé)原則。答:基本思想:SRP使得一種類或一種模塊承擔(dān)責(zé)任盡量少,使盡量少因素或動機影響該類或該模塊,即增大類或模塊內(nèi)聚性,減少其耦合度,SRP是所有原則中最簡樸之一,也是最難對的運用之一。COMMAND模式體現(xiàn)了SRP原則,大多數(shù)類都是一組辦法和相應(yīng)一組變量結(jié)合,而該模式只是封裝了一種沒有任何變量函數(shù),它對函數(shù)關(guān)注超過了類,將一種祈求封裝為一種對象,從而可用不同祈求對客戶進行參數(shù)化。17.軟件復(fù)用可采用類繼承方式和類聚合方式,比較兩者優(yōu)缺陷。答:聚合:一種對象擁有另一種對象或?qū)α硪环N對象負責(zé)(即一種對象包括另一種對象或是另一種對象一某些)并且聚合對象和其所有具備相似生命周期(即所謂“同生共死”關(guān)系)。聚合復(fù)用長處:①容器類僅能通過被包括對象接口來對其進行訪問。②“黑盒”復(fù)用,由于被包括對象內(nèi)部細節(jié)對外是不可見。③包裝性好。④實現(xiàn)上互相依賴性比較小。⑤每一種類只專注于一項任務(wù)。⑥通過獲取指定其她具備相似類型對象使用,可以在運營期間動態(tài)地定義(對象)組合。聚合缺陷:①導(dǎo)致系統(tǒng)中對象過多②為了能將各種不同對象作為組合塊來使用,必要仔細地對接口進行定義。類繼承:是一種通過擴展(一種已有對象)實現(xiàn),從而獲得新功能復(fù)用辦法。繼承長處:①容易進行新實現(xiàn),由于其大多數(shù)可繼承而來②易于修改或擴展那些被復(fù)用實現(xiàn)。繼承缺陷:①破壞了封裝性,由于這會將父類實現(xiàn)細節(jié)暴露給子類②“白盒”復(fù)用,由于父類內(nèi)部細節(jié)對于子類而言普通是可見③當(dāng)父類實現(xiàn)更改時,子類也不得不隨之更改④從父類繼承來實現(xiàn)將不能在運營期間進行變化。18.畫出工廠辦法模式構(gòu)造圖。什么狀況下適合使用工廠方發(fā)模式?其中product:為工廠模式所要創(chuàng)立對象類型定義一種接口。Concreteproduct:實現(xiàn)product接口。Creator:聲明工廠辦法(factorymethod)返回值為product一種對象。Concretecreator:覆寫factoryMethod(),返回值為concreteproduct一種詳細實例。在下面狀況下你可以考慮使用工廠辦法模式:1)當(dāng)客戶程序不需要懂得要使用對象創(chuàng)立過程。2)客戶程序使用對象存在變動也許,或者主線就不懂得使用哪一種詳細對象。19.畫出合成模式(Composite)構(gòu)造圖。舉例闡明一種可以應(yīng)用合成模式軟件設(shè)計實例,闡明其中各角色作用。實例:計算機和立體組合音響這樣設(shè)備經(jīng)常被組裝成一某些整體層次構(gòu)造或者是容器層次構(gòu)造,例如:底盤可以包括驅(qū)動裝置和平面板,總線具有各種插件,機柜涉及底盤、總線等。這樣構(gòu)造很自然用composite模式進行模仿。Equipment類為在某些——整體層次構(gòu)造中所有設(shè)備定義一種接口。Equipment聲明某些操作返回一種設(shè)備屬性,例如它能是消耗和價格。子類為指定設(shè)備實現(xiàn)了這些操作,Equipment還聲明了一種CreateIterator操作,該操作為訪問它零件返回一種Iterator,這個操作缺省實現(xiàn)返回一上NullIterator,它在空集上迭代。CompositeEquipment是包括其他設(shè)備基類,它也是Equipment子類。20.簡述門面模式(Facade)和中介者模式(Mediator)基本思想,兩者差別何在?答:門面模式(facade)又稱外觀模式?;舅枷耄簽樽酉到y(tǒng)中一組接口提供一種一致界面,F(xiàn)acade模式定義了一種高層接口,這個接口使得這一子系統(tǒng)更加容易使用。“中介者模式”基本思想:MediatorPattern中文譯為“中介者模式”、“調(diào)停者模式”。調(diào)停者模式定義是:用一種調(diào)停對象來封裝一系列對象交互。調(diào)停者使各對象不需要顯式地互相引用,從而使其耦合松散,并且可以獨立地變化它們之間交互。簡樸點來說,將本來兩個直接引用或者依賴對象拆開,在中間加入一種“調(diào)?!睂ο螅沟脙深^對象分別和“調(diào)?!睂ο笠没蛘咭蕾嚒烧卟顒e:從目上看,調(diào)停者模式與門面模式有些相似。但是門面模式是介于客戶程序與子系統(tǒng)之間,而調(diào)停者模式是介于子系統(tǒng)與子系統(tǒng)之間。這也注定了它們有很大區(qū)別:門面模式是將原有復(fù)雜邏輯提取到一種統(tǒng)一接口,簡化客戶對邏輯使用。它是被客戶所感知,而原有復(fù)雜邏輯則被隱藏了起來。而調(diào)停者模式加入并沒有變化客戶原有使用習(xí)慣,它是隱藏在原有邏輯背面,使得代碼邏輯更加清晰可用。21.簡述觀測者模式基本思想,如何實現(xiàn)當(dāng)目的對象發(fā)生變化時各種觀測者對象同步更新?畫出她們之間協(xié)作圖。(1)Observer(觀測者)基本思想:對象間一種一對多依賴關(guān)系。當(dāng)一種對象狀態(tài)發(fā)生變化時,所有依賴于它對象都得到告知并自動更新。(2)協(xié)作:當(dāng)ConcreteSubject發(fā)生任何也許導(dǎo)到其參觀者與其自身狀態(tài)不一致變化時,它將告知它各個觀測者。在得到一種詳細目的變化告知后,ConcreteObject對象可向目的對象查詢信息,ConcreteObject使用這個些信息以使它狀態(tài)與目的對象狀態(tài)一致。(3)協(xié)作圖:22.舉一適合使用State模式例子。與不使用該模式相比,有哪些長處?舉例:抽象狀態(tài)類定義了一種抽象辦法“寫程序”與不使用該模式相比長處:State模式將特定狀態(tài)有關(guān)行為封裝在一種類中,由于所有狀態(tài)有關(guān)代碼都存在于某個concretestate中,因此通過定義新子類可以很容易增長新狀態(tài)和轉(zhuǎn)換。23.有哪些模式使用可以使得類復(fù)用性增強?闡明你理由。方略模式(strategy)屬于對象行為型模式,重要定義一系列算法,把這些算法一種個封裝成擁有共同接口單獨類,并使她們之間互換,客戶端調(diào)用她們時候互不影響。算法使用和算法分離,即將變化詳細算法封裝起來,減少了代碼耦合度,算法提取起來,使算法得到重用。中介者模式(mediator)用一種調(diào)停對象來封裝一系列對象交互。調(diào)停者使各對象不需要顯式地互相引用,從而使其耦合松散,并且可以獨立地變化它們之間交互。即,將本來兩個直接引用或者依賴對象拆開,在中間加入一種“調(diào)?!睂ο?,使得兩頭對象分別和“調(diào)停”對象引用或者依賴。提高了原有系統(tǒng)可讀性,將原有系統(tǒng)多對多轉(zhuǎn)化為一對多,提高了代碼可復(fù)用性。適配器(Adapter)模式是原本由于接口不兼容而不能再一起那些類可以一起工作。如畫圖程序中,已實現(xiàn)繪制點,直線等功能。為了讓客戶程序在使用時候不用關(guān)懷不同定義,定義個抽象類規(guī)范接口,當(dāng)去實現(xiàn)繪圖時,發(fā)現(xiàn)系統(tǒng)其他地方已有制圖實現(xiàn),但是系統(tǒng)已有辦法與抽象類中規(guī)定辦法不同樣,這時候用適配器模式可以解決這問題。適配器模式是為了面向接口編程中更好復(fù)用。24.比較Adapter和Proxy模式使用上異同之處。適配器模式(Adapter):將一種類接口轉(zhuǎn)換成客戶但愿此外一種接口。Adapter模式使得原本由于接口不兼容而不能一起工作那些類可以一起工作。代理模式有兩個英文名字:ProxyPattern和SurrogatePattern。代理模式:為其她對象提供一種代理以控制對這個對象訪問。說白了就是,在某些狀況下客戶不想或者不能直接引用一種對象,而代理對象可以在客戶和目的對象之間起到中介作用,去掉客戶不能看到內(nèi)容和服務(wù)或者增添客戶需要額外服務(wù)。兩者重要區(qū)別在于代理模式應(yīng)用狀況是不變化接口命名,并且是對已有接口功能一種控制;而適配器模式則強調(diào)接口轉(zhuǎn)換。25.闡明Observer模式基本實現(xiàn)方式。如果不用該模式,要達到同樣效果,你會如何做?觀測者模式在關(guān)于目的角色、觀測者角色通信詳細實現(xiàn)中,有兩個版本。一種狀況便是目的角色在發(fā)生變化后,僅僅告訴觀測者角色“我變化了”;觀測者角色如果想要懂得詳細變化細節(jié),則就要自己從目的角色接口中得到。這種模式被很形象稱為:拉模式——就是說變化信息是觀測者角色積極從目的角色中“拉”出來。尚有一種辦法,那就是我目的角色“服務(wù)一條龍”,告知你發(fā)生變化同步,通過一種參數(shù)將變化細節(jié)傳遞到觀測者角色中去。這就是“推模式”——管你要不要,先給你啦。這兩種模式使用,取決于系統(tǒng)設(shè)計時需要。如果目的角色比較復(fù)雜,并且觀測者角色進行更新時必要得到某些詳細變化信息,則“推模式”比較適當(dāng)。如果目的角色比較簡樸,則“拉

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論