




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
11.5對象設計
對象設計要確定類、關聯的完整定義以及接口的形式,實現操作方法的算法,實現必需的內部對象,并對數據結構和算法進行優化。11.5.1對象設計概述
對象設計中,必須按照系統設計中確定的設計策略進行設計,并完善相應的細節,設計工作的重心必須從強調應用域的概念轉到強調計算機概念上來。分析中得到的對象可作為設計的框架,要選擇相應的方法來實現這個框架。選擇方法的標準是盡可能減少執行時間,占用內存少,開銷小。分析中得到的類、屬性和關聯等都必須用具體的數據結構來實現,還必須引入新的類來存儲中間結果,從而避免重復計算。11.5.1對象設計概述1.對象設計基礎
對象模型描述了系統中的對象、屬性和操作,這些對象可直接引入到設計中,而對象設計要增加詳情和制定實現策略,為提高效率必須增加多個新類。
功能模型描述系統必須實現的操作。對象設計時必須確定如何實現操作,為操作選擇算法,將復雜操作分解成簡單操作。算法和分解都是實現優化的重要手段。11.5.1對象設計概述
動態模型說明系統是如何響應外部事件的,程序的主要控制結構來自于動態模型,要么顯式實現程序控制,通過內部調度機制識別事件并把事件映射成操作調用,要么隱式實現程序控制,通過選擇的算法按動態模型中確定的次序執行操作。11.5.1對象設計概述2.對象設計的步驟對象設計時應按下述步驟進行:(1)將三種模型結合起來以得到對象類。對象模型是對象設計的主要框架,必須將動態模型中的動作和活動以及功能模型中的處理轉換成操作,加入到對象類中。(2)設計實現操作的算法。(3)優化數據訪問路徑。(4)實現外部接口的控制。(5)調整類結構以提高繼承。(6)設計關聯。(7)確定對象表示。(8)將類和關聯集成到模塊中。11.5.2算法設計1.算法設計步驟功能模型中確定的各個操作都必須用算法來表示。算法設計按如下過程進行:(1)選擇極小化開銷的算法。(2)選擇適用于該算法的數據結構。(3)定義必需的新的內部類和操作。(4)將操作響應賦給合適的類。11.5.2算法設計2.選擇算法選擇算法應考慮下列因素:(1)計算復雜度。(2)易實現,易理解。(3)靈活性好。11.5.2算法設計3.選擇數據結構選擇算法時涉及到選擇算法使用的數據結構,許多數據結構的實現都是包容類的實例,大多數面向對象語言提供了基本數據結構,供用戶自選組合定義。4.定義內部類和操作在展開算法時,可能引入一些對象類,用來存放中間結果。在分解高層操作時也可引入新的低層操作。必須定義這些低層操作,因為大多數這類操作是外部不可見的。11.5.2算法設計5.優化設計效率低但語法正確的分析模型應該進行優化,其目的是使實現更為有效,但優化后的系統有可能會產生二義性且減少了可重用的能力,必須在清晰性和效率之間尋找一種適宜的折衷方案。在優化設計時,必須考慮:(1)增加冗余關聯,以減少訪問開銷,提高方便性。(2)為提高效率重新調整計算。(3)為避免復雜表達式的重計算而保留派生屬性。11.5.3控制的實現作為系統設計的一部分,應為動態模型的實現選擇一種基本策略,而對象設計中必須實現這種策略。實現控制有下述三種方法:(1)在程序中設置地址以存放狀態(過程驅動)。(2)直接用狀態機制實現(事件驅動)。(3)使用并發任務(并發序列)。11.5.4調整繼承1)重新修正類及操作有時可對多個類定義同一操作并且放在同一共同的祖先中,使子類可容易地繼承。常見的情況是不同類的操作是相似的,但不相同,只需稍稍改動這種操作或類的定義就能使這些操作相互匹配。這些改動可以使用一個繼承的操作覆蓋它們。11.5.4調整繼承2)抽象出公共行為在設計中,常增加新類和新操作,如果一個操作集合和屬性集合看起來在兩個類中重復過,則這兩個類從更高抽象級角度看,很有可能是同一事物的特殊變種。當找出公共行為后,應該創建一個公共超類來實現共享性質,把特殊性質放在子類中,這種對象模型的變換稱為抽象公共超類的過程。11.5.4調整繼承3)使用委派來共享實現當使用繼承作為一種實現技術的時候,將某類作為其他類的屬性及關聯,使用這種較為安全方法也可獲得同樣的效果。用這種方法,某種對象可使用委派而不是使用繼承,這樣可有選擇地喚醒另一個類所希望的函數功能。委派包括從某對象中得到一個操作并且把它發往另一個對象,后一個對象是前一個對象的一部分或與前一個對象有關,只有有意義的操作才能委派給后一個對象,因而不存在偶然繼承了無意義的操作問題。11.5.5關聯的設計
關聯是對象模型的紐帶,它提供了對象之間的訪問路徑。關聯是用于建模和分析的概念實體,在對象設計時,要實現對象模型中的關聯。1.關聯的遍歷
從抽象角度看,關聯是雙向的,但在有些應用中的關聯是單向的。這種單向關聯實現起來就比較簡單,但應用的需求可能是變化的,將來在有可能增加新的操作時,該操作需從反向遍歷這個過去的單向關聯。11.5.5關聯的設計2.單向關聯如果關聯只是單向遍歷,則可用指針來實現。指針是一個含有對象引用的屬性。如果重數為一元的,則為一個簡單指針;如果重數為多元的,則就是一個指針集合。11.5.5關聯的設計3.雙向關聯許多關聯是雙向遍歷的,雖然各方向的遍歷頻度不是相等的。下列三種方法可實現雙向關聯:(1)只將一個方向用屬性實現。當需要反向遍歷
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何尋找珠寶鑒定工作的機會試題及答案
- 房屋買賣變更合同二零二五年
- 2024年輔導員考試熱點試題及答案
- 個人合伙協議書范例
- 個人成長與未來發展匯報
- 花藝師考試課程改進策略試題及答案
- 輔導員考試的新考題與答案視角
- 課程化教學與自主學習結合計劃
- 2024年統計師考試知識深耕試題及答案
- 全面解析農業職業經理人考試試題及答案
- 季節性安全檢查表(四季)
- 2023年貴州省中學生生物學競賽考試(初賽)試題( 含答案解析 )
- 加強區域管理推進學區建設
- 商住小區施工組織設計
- DB37T 4405-2021水閘工程運行規范
- 地基與基礎分部工程驗收報告
- 詩歌藝術手法:《揚州慢》【知識精講+備課精研】 高二語文課內知識點拓展延伸(統編版選擇性必修下冊)
- GA/T 1509-2018法庭科學現場制圖規范
- 臨床醫學概要課件
- 模板及支撐計算書
- 柔性電子技術與移動醫療課件
評論
0/150
提交評論