版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
11.5對(duì)象設(shè)計(jì)
對(duì)象設(shè)計(jì)要確定類、關(guān)聯(lián)的完整定義以及接口的形式,實(shí)現(xiàn)操作方法的算法,實(shí)現(xiàn)必需的內(nèi)部對(duì)象,并對(duì)數(shù)據(jù)結(jié)構(gòu)和算法進(jìn)行優(yōu)化。11.5.1對(duì)象設(shè)計(jì)概述
對(duì)象設(shè)計(jì)中,必須按照系統(tǒng)設(shè)計(jì)中確定的設(shè)計(jì)策略進(jìn)行設(shè)計(jì),并完善相應(yīng)的細(xì)節(jié),設(shè)計(jì)工作的重心必須從強(qiáng)調(diào)應(yīng)用域的概念轉(zhuǎn)到強(qiáng)調(diào)計(jì)算機(jī)概念上來(lái)。分析中得到的對(duì)象可作為設(shè)計(jì)的框架,要選擇相應(yīng)的方法來(lái)實(shí)現(xiàn)這個(gè)框架。選擇方法的標(biāo)準(zhǔn)是盡可能減少執(zhí)行時(shí)間,占用內(nèi)存少,開銷小。分析中得到的類、屬性和關(guān)聯(lián)等都必須用具體的數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn),還必須引入新的類來(lái)存儲(chǔ)中間結(jié)果,從而避免重復(fù)計(jì)算。11.5.1對(duì)象設(shè)計(jì)概述1.對(duì)象設(shè)計(jì)基礎(chǔ)
對(duì)象模型描述了系統(tǒng)中的對(duì)象、屬性和操作,這些對(duì)象可直接引入到設(shè)計(jì)中,而對(duì)象設(shè)計(jì)要增加詳情和制定實(shí)現(xiàn)策略,為提高效率必須增加多個(gè)新類。
功能模型描述系統(tǒng)必須實(shí)現(xiàn)的操作。對(duì)象設(shè)計(jì)時(shí)必須確定如何實(shí)現(xiàn)操作,為操作選擇算法,將復(fù)雜操作分解成簡(jiǎn)單操作。算法和分解都是實(shí)現(xiàn)優(yōu)化的重要手段。11.5.1對(duì)象設(shè)計(jì)概述
動(dòng)態(tài)模型說明系統(tǒng)是如何響應(yīng)外部事件的,程序的主要控制結(jié)構(gòu)來(lái)自于動(dòng)態(tài)模型,要么顯式實(shí)現(xiàn)程序控制,通過內(nèi)部調(diào)度機(jī)制識(shí)別事件并把事件映射成操作調(diào)用,要么隱式實(shí)現(xiàn)程序控制,通過選擇的算法按動(dòng)態(tài)模型中確定的次序執(zhí)行操作。11.5.1對(duì)象設(shè)計(jì)概述2.對(duì)象設(shè)計(jì)的步驟對(duì)象設(shè)計(jì)時(shí)應(yīng)按下述步驟進(jìn)行:(1)將三種模型結(jié)合起來(lái)以得到對(duì)象類。對(duì)象模型是對(duì)象設(shè)計(jì)的主要框架,必須將動(dòng)態(tài)模型中的動(dòng)作和活動(dòng)以及功能模型中的處理轉(zhuǎn)換成操作,加入到對(duì)象類中。(2)設(shè)計(jì)實(shí)現(xiàn)操作的算法。(3)優(yōu)化數(shù)據(jù)訪問路徑。(4)實(shí)現(xiàn)外部接口的控制。(5)調(diào)整類結(jié)構(gòu)以提高繼承。(6)設(shè)計(jì)關(guān)聯(lián)。(7)確定對(duì)象表示。(8)將類和關(guān)聯(lián)集成到模塊中。11.5.2算法設(shè)計(jì)1.算法設(shè)計(jì)步驟功能模型中確定的各個(gè)操作都必須用算法來(lái)表示。算法設(shè)計(jì)按如下過程進(jìn)行:(1)選擇極小化開銷的算法。(2)選擇適用于該算法的數(shù)據(jù)結(jié)構(gòu)。(3)定義必需的新的內(nèi)部類和操作。(4)將操作響應(yīng)賦給合適的類。11.5.2算法設(shè)計(jì)2.選擇算法選擇算法應(yīng)考慮下列因素:(1)計(jì)算復(fù)雜度。(2)易實(shí)現(xiàn),易理解。(3)靈活性好。11.5.2算法設(shè)計(jì)3.選擇數(shù)據(jù)結(jié)構(gòu)選擇算法時(shí)涉及到選擇算法使用的數(shù)據(jù)結(jié)構(gòu),許多數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)都是包容類的實(shí)例,大多數(shù)面向?qū)ο笳Z(yǔ)言提供了基本數(shù)據(jù)結(jié)構(gòu),供用戶自選組合定義。4.定義內(nèi)部類和操作在展開算法時(shí),可能引入一些對(duì)象類,用來(lái)存放中間結(jié)果。在分解高層操作時(shí)也可引入新的低層操作。必須定義這些低層操作,因?yàn)榇蠖鄶?shù)這類操作是外部不可見的。11.5.2算法設(shè)計(jì)5.優(yōu)化設(shè)計(jì)效率低但語(yǔ)法正確的分析模型應(yīng)該進(jìn)行優(yōu)化,其目的是使實(shí)現(xiàn)更為有效,但優(yōu)化后的系統(tǒng)有可能會(huì)產(chǎn)生二義性且減少了可重用的能力,必須在清晰性和效率之間尋找一種適宜的折衷方案。在優(yōu)化設(shè)計(jì)時(shí),必須考慮:(1)增加冗余關(guān)聯(lián),以減少訪問開銷,提高方便性。(2)為提高效率重新調(diào)整計(jì)算。(3)為避免復(fù)雜表達(dá)式的重計(jì)算而保留派生屬性。11.5.3控制的實(shí)現(xiàn)作為系統(tǒng)設(shè)計(jì)的一部分,應(yīng)為動(dòng)態(tài)模型的實(shí)現(xiàn)選擇一種基本策略,而對(duì)象設(shè)計(jì)中必須實(shí)現(xiàn)這種策略。實(shí)現(xiàn)控制有下述三種方法:(1)在程序中設(shè)置地址以存放狀態(tài)(過程驅(qū)動(dòng))。(2)直接用狀態(tài)機(jī)制實(shí)現(xiàn)(事件驅(qū)動(dòng))。(3)使用并發(fā)任務(wù)(并發(fā)序列)。11.5.4調(diào)整繼承1)重新修正類及操作有時(shí)可對(duì)多個(gè)類定義同一操作并且放在同一共同的祖先中,使子類可容易地繼承。常見的情況是不同類的操作是相似的,但不相同,只需稍稍改動(dòng)這種操作或類的定義就能使這些操作相互匹配。這些改動(dòng)可以使用一個(gè)繼承的操作覆蓋它們。11.5.4調(diào)整繼承2)抽象出公共行為在設(shè)計(jì)中,常增加新類和新操作,如果一個(gè)操作集合和屬性集合看起來(lái)在兩個(gè)類中重復(fù)過,則這兩個(gè)類從更高抽象級(jí)角度看,很有可能是同一事物的特殊變種。當(dāng)找出公共行為后,應(yīng)該創(chuàng)建一個(gè)公共超類來(lái)實(shí)現(xiàn)共享性質(zhì),把特殊性質(zhì)放在子類中,這種對(duì)象模型的變換稱為抽象公共超類的過程。11.5.4調(diào)整繼承3)使用委派來(lái)共享實(shí)現(xiàn)當(dāng)使用繼承作為一種實(shí)現(xiàn)技術(shù)的時(shí)候,將某類作為其他類的屬性及關(guān)聯(lián),使用這種較為安全方法也可獲得同樣的效果。用這種方法,某種對(duì)象可使用委派而不是使用繼承,這樣可有選擇地喚醒另一個(gè)類所希望的函數(shù)功能。委派包括從某對(duì)象中得到一個(gè)操作并且把它發(fā)往另一個(gè)對(duì)象,后一個(gè)對(duì)象是前一個(gè)對(duì)象的一部分或與前一個(gè)對(duì)象有關(guān),只有有意義的操作才能委派給后一個(gè)對(duì)象,因而不存在偶然繼承了無(wú)意義的操作問題。11.5.5關(guān)聯(lián)的設(shè)計(jì)
關(guān)聯(lián)是對(duì)象模型的紐帶,它提供了對(duì)象之間的訪問路徑。關(guān)聯(lián)是用于建模和分析的概念實(shí)體,在對(duì)象設(shè)計(jì)時(shí),要實(shí)現(xiàn)對(duì)象模型中的關(guān)聯(lián)。1.關(guān)聯(lián)的遍歷
從抽象角度看,關(guān)聯(lián)是雙向的,但在有些應(yīng)用中的關(guān)聯(lián)是單向的。這種單向關(guān)聯(lián)實(shí)現(xiàn)起來(lái)就比較簡(jiǎn)單,但應(yīng)用的需求可能是變化的,將來(lái)在有可能增加新的操作時(shí),該操作需從反向遍歷這個(gè)過去的單向關(guān)聯(lián)。11.5.5關(guān)聯(lián)的設(shè)計(jì)2.單向關(guān)聯(lián)如果關(guān)聯(lián)只是單向遍歷,則可用指針來(lái)實(shí)現(xiàn)。指針是一個(gè)含有對(duì)象引用的屬性。如果重?cái)?shù)為一元的,則為一個(gè)簡(jiǎn)單指針;如果重?cái)?shù)為多元的,則就是一個(gè)指針集合。11.5.5關(guān)聯(lián)的設(shè)計(jì)3.雙向關(guān)聯(lián)許多關(guān)聯(lián)是雙向遍歷的,雖然各方向的遍歷頻度不是相等的。下列三種方法可實(shí)現(xiàn)雙向關(guān)聯(lián):(1)只將一個(gè)方向用屬性實(shí)現(xiàn)。當(dāng)需要反向遍歷
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 實(shí)習(xí)就業(yè)勞動(dòng)合同三種協(xié)議的不同之處
- 工程分包合同的簽訂與風(fēng)險(xiǎn)控制
- 農(nóng)產(chǎn)品訂購(gòu)合同評(píng)估
- 雇傭司機(jī)合同協(xié)議書
- 房屋買賣款項(xiàng)合同
- 房屋買賣合同律師法律團(tuán)隊(duì)顧問服務(wù)
- 承諾與保證書的重要性
- 蘋果買賣合同范本
- 二手房買賣中介服務(wù)合同
- 機(jī)房整體遷移合作協(xié)議
- 20以內(nèi)的加法口算練習(xí)題4000題 205
- 《網(wǎng)絡(luò)系統(tǒng)建設(shè)與運(yùn)維》課件-項(xiàng)目一 5G技術(shù)特點(diǎn)和網(wǎng)
- 渠道襯砌施工方案(渠道預(yù)制混凝土塊)
- 籃球球星姚明課件
- 人生海海讀書分享閱讀時(shí)光好書讀后感
- 02S515排水檢查井圖集
- 2024-2030年中國(guó)Janus激酶(JAK)抑制劑行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 水稻育秧合同范本
- 2025高考語(yǔ)文步步高大一輪復(fù)習(xí)講義教材文言文點(diǎn)線面答案精析
- 支氣管鏡的臨床應(yīng)用
- 2024-2030年中國(guó)眼部保健品行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
評(píng)論
0/150
提交評(píng)論