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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論