freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[計算機軟件及應用]數(shù)據(jù)抽象與面向?qū)ο蟮某绦蛟O計-文庫吧

2025-09-20 04:11 本頁面


【正文】 類,包括: ? 基礎子域類 ? 如 int, Bool, char等類 ? 結構化類:實現(xiàn)了框架,如, ? Stack, Queue, List, Binary_Tree, Set等; ? 語義類,包括 ? Date, Time, Angle, Money等; ? 一個基礎類可以建立在另一個基礎類之上,如, ? Angle可能使用類 Real, Polygon, Set等 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 19 對象類的各種域- 架構域 ? 架構域中的類在不同行業(yè)中應用,包括: ? 計算機通信類:如,端口 Port, 遠程機器類等; ? 數(shù)據(jù)庫操作類:事務處理 Transaction, Backup等; ? 用戶界面類: Window, 命令按鈕Command_Button ? 對現(xiàn)實世界來說,不存在獨立的架構域類庫,即架構域庫 依賴于所使用的硬件架構和軟件架構 。 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 20 對象類的各種域- 事務域 ? 事務域的類在許多應用中是有用的,但是僅限于單一的產(chǎn)業(yè)中 ,如銀行系統(tǒng)、醫(yī)學系統(tǒng)或電子設備領域等,包括: ? 屬性類:捕捉了事務世界中的屬性。如銀行帳號的余額Balance、 體溫 Body_Temperature等 . 但與 Money和 Temperature不同。 ? 角色類:根據(jù)事務域中執(zhí)行的角色而確定的類。如Customer和 Patient等 (類似于信息模型中實體類型 ) ? 聯(lián)系類:與事務中相關元素的關系有關。如Account_Owership和 Patient_Supervision等。 ? 事務類的應用范圍要比一個產(chǎn)業(yè)的應用范圍?。核鼈兛赡苤粚δ硞€企業(yè)有用。 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 21 對象類的各種域- 應用域 ? 應用域中的類僅在一個應用中有用,包括 ? 事件-激活-識別 (eventstimulusrecognition)域。它是事件模板,通過輸入來檢查環(huán)境中的特殊事件的軟件組件。如 Monitor_Patient_Temperature類用來從其他事件中查找事件 “ 病人發(fā)燒 ” 和 “ 病人體溫過低 ”的。 ? 事件-活動-管理 (eventactivitymanagement)域。用來在一個給定類型的事件出現(xiàn)時執(zhí)行合適的業(yè)務策略。如, Warm_Hypothermic_Patient類可以立刻升高低體溫病人的體溫,然后報警。 ? 應用域中的類可重用性很小。事實上,應用域中的類只于一個應用有關,可能沒有一點重用性。 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 22 對象類的各種域- 各個域的類的可重用性 ? 應用域 ? 事件-活動-管理子域 ? 事件-激活-識別子域 ? 事務域 ? Relationship ? Role (entity) ? Attribute ? 架構域 ? 用戶界面 ? 數(shù)據(jù)庫操作 ? 計算機通信 ? 基礎域 ? 基礎類 ? Structural結構化 ? Semantic語義 Low reusability High encumbrance Shallow inheritance High reusability Low encumbrance Deeper inheritance Medium reusability Medium encumbrance Medium inheritance Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 23 對象類的各種域- 域中的類的來源 (類源 ) ? 類從那里來:自己開發(fā)?購買? ? 這依賴于類所在的域。 ? 對基礎域類來說,可從供應商處購買。自己開發(fā)和維護代價很高。 ? 架構域的類源:購買。但是需要考慮硬件平臺的兼容性。可能需要對購買的類庫進行修補、定制。 ? 事務域的類源不可能買到。原因:涉及到具體的應用領域。即使由類似的事務應用,但是于你需要的也不完全相符。 ? 應用域中的類不必考慮重用性設計。 不論設計的多好,重用的機會很少。應用域中的軟件組件可能是以傳統(tǒng)的過程或?qū)嵗男问襟w現(xiàn),未必是純粹的類。 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 24 相關度 (encumbrance)-定義 ? 相關度 衡量類的完全依附機構。完全依附機構包含給定的類為了起作用必須依賴的其他類。 ? 類 C的直接類參考集合 是與類 C直接相關的類的集合。實際中,類 C與類 D相關的幾種方式: ? C由類 D繼承而來; ? C具有類 D的一個變量; ? C具有一個以類 D為輸入?yún)?shù)的方法; ? C的一個傳送消息的方法具有類 D的返回參數(shù); ? C的一個方法具有一個類 D的變量; ? C是 D的友類。 C c1 c2 c3 c11 c31 c11 c21 c32 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 25 相關度 (encumbrance)-定義 ? 類 C的間接參考類集合:假設類 C的直接參考類集合包含類 D1, D2, … , Dn, 則類 C的間接參考類集合就是類 C的直接參考類集合和類D1, D2,… Dn的間接參考類集合的總和。 C c1 c2 c3 c11 c31 c11 c21 c32 F1 F4 F2 F3 ? 類的相關度 是它的間接參考集合的大小。如 C的相關度為 12。 ? 基礎類的相關度為 0。 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 26 相關度-作用 ? 相關度給出了一個 衡量類復雜性的尺度 ,即類在基礎域之上多高的位置。 ? 高層次域上的類具有高的相關度 ,反之依然, ? 非預期的相關度預示類設計中存在錯誤。例如, ? 發(fā)現(xiàn)低層次域中的類具有高的相關度,則類內(nèi)聚可能出錯了。 ? 高層次域中的類有低的相關度,則設計可能是很糟糕的,即它是直接調(diào)用如 Int、 Char等基礎類域中的類實現(xiàn)的,而不是用中間類構建的。 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 27 相關度- 德墨特爾 (Demeter)規(guī)則 ?德墨特爾規(guī)則 — 用來限制類的直接參考集合 ?對類 C和定義在類 C中的方法 m, 所有 m中的消息的目標對象都必須是下面某個類的實例: 1. C本身; 2. m的類參數(shù); 3. C的變量的類; 4. 由 m創(chuàng)建的對象的類(或者是通過 m的函數(shù)和方法調(diào)用的類); 5. 全局變量中的對象的類。 ?狹義德墨特爾規(guī)則中第三條的 C的變量僅僅是定義在 C本身的變量;廣義德墨特爾規(guī)則中 C的變量包括 C及它所繼承的類的變量。 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 28 相關度- 德墨特爾 (Demeter)規(guī)則 ? Leiberherr 和 Holland將德墨特爾規(guī)則用來限制類的直接參考集合,從而限制類的相關度數(shù) ? 德墨特爾規(guī)則限制了給定的類對其他類的任意的相關性。 ? 推薦使用狹義規(guī)則,因為它在 C類的父類的封裝邊界上限制了同源。 ? 邊界限制同源更有利于系統(tǒng)維護和系統(tǒng)擴展,因為它讓 C類的父類的設計 者不必 重新設計父類的內(nèi)部實現(xiàn);并且加強了 C的可理解性,因為不必考慮 C的父類的實現(xiàn)細節(jié)。 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 29 違反 “ 德墨特爾 (Demeter)” 規(guī)則例 Class Client { private: ClassA * m_pClassA。 public: void func() { m_pClassAgetClassB() getClassC() getClassD() getTimer()。 } } ? 問題: ? ClassB, ClassC,ClassD都是 Class Client的陌生人; ? 為反了 “ 不和陌生人講話 ” 的原則 ? 解決方法: ? 為 ClassA添加一個職責 getTimer(), 這樣Client只需調(diào)用ClassA的 getTimer方法即可。 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 30 類內(nèi)聚:類和它的方法 ? 類內(nèi)聚是 衡量類的外部接口中的方法間的聯(lián)系尺度 。類內(nèi)聚的封裝層次高于模塊的內(nèi)聚。 ? 具有 較低內(nèi)聚 的類具有一些彼此 不相關聯(lián) 的方法。 ? 具有 高內(nèi)聚度 的類方法通過類實現(xiàn)彼此相關的數(shù)據(jù)抽象。 ? 可以認為方法使用的變量的重疊度越大,類的內(nèi)聚度越高。但是類內(nèi)聚是在封裝單元外 不可見 的屬性。因此通過訪問類內(nèi)部來評估類內(nèi)聚是錯誤的。第三方如何評價? ? 從類的外部設計可以看到,在將 方法分配給類時存在 的問題包括 混合實例、混合域、混合角色內(nèi)聚。 其中混合實例危害最大,混合角色危害最小。沒有任何一個上述問題的類稱為 完全內(nèi)聚的類,是理想的內(nèi)聚。 方法 類 私有變量 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 31 類內(nèi)聚-混合實例內(nèi)聚 ? 混合實例內(nèi)聚的類中擁有這樣的組件(尤其是方法): 這些組件中一些類的對象沒有定義。例, ? 銷售部的銷售人員有委托銷售人和非委托銷售人。 ? 設 Fred是委托銷售人, Mary是非委托銷售人。 ? 在銷售部的應用中存在一個類 SALESPERSON, 變量fred和 mary指向的對象是它的兩個實例。 ? 則,考察語句 。 //有意義 。 //沒有意義 ? 解決方法在類 SALESPERSON中設置一個變量whether_missioned: BOOL, 且在方法issue_mission中包含一個 if 語句防止為非委托對象執(zhí)行打印¥ 。可以,但是較糟糕 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 32 類內(nèi)聚-混合實例內(nèi)聚(續(xù)) ? 問題在于 ? 類 SALESPERSON具有混合實例內(nèi)聚。將委托對象和非委托對象同時作為一類。 ? 解決:定義兩個類 COMM_SALESPERSON和NONCOMM_SALESPERSON 。 給前者分配mission方法,后者沒有。 SALESPERSON COMM_SALESPERSON COMM_SALESPERSON mission ? 混合類內(nèi)聚通常是不完善的類層次或是不正確的類層次 。在他的類本身中存在一些別扭的代碼,如 if判斷。 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O計 2021/11/10 鮑玉斌 東大信息學院軟件所 程序設計方法學 All Rights Reserved 33 類內(nèi)聚-混合域內(nèi)聚 ? 混合域內(nèi)聚的類擁有這樣的組件: ? 這些組件用不同域的外在類作為類的相關度。 ? 所謂外在的是指, 如果 A不用 B的任何概念就可以定義,那么 B對 A來說就是外在的。例如 “ 大象 ” 對“ 人 ” 來說就是外在的。 ? 所謂內(nèi)在的是指, 如果 B具有 A的固有的一些屬性,那么 B對 A來說就是內(nèi)在的。 DATE對 PERSON來說是內(nèi)在的。內(nèi)在不是絕對的,視具體應用而定。 REALNUMBER /arctan: ANGLE REALNUMBER / euroam
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1