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

正文內(nèi)容

[計算機軟件及應(yīng)用]數(shù)據(jù)抽象與面向?qū)ο蟮某绦蛟O(shè)計-資料下載頁

2024-10-19 04:11本頁面
  

【正文】 (POLYGON) addvertex (newvertex。 ) Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 69 how best to solve this problem? ? 作為 Triangle的設(shè)計者,可以采?。? ? 不繼承 add_vertex,或者 ? 覆蓋 add_vertex以使它失效,或者 ? 如果該行為不能保證 Triangle的閉包,但又被應(yīng)用接受,需要將 Triangle的對象重新分類為 Rectangle。 ? 總之,類的設(shè)計者有責(zé)任保證行為的類閉包。 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 70 How to ensure preservation of class invariant ? Check what methodx does before invoking it 在調(diào)用方法之前,檢查它做什么 ? Pass only the exact type that methodx expects (perhaps by cloning) 只傳遞方法期望的類型(也許通過克隆) ? Override (maybe cancel) any superclass method in the subclass if it doesn’t preserve the subclass’ invariant 在子類中重載(或刪除)任何不能保持子類不變式的方法 ? Redesign the class hierarchy to avoid the problem 重新設(shè)計類層次已避免問題 ? Allow the class of the subclass object to change! Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 71 小結(jié) ? 類 A的屬性包括狀態(tài)空間和它允許的行為; ? B是 A的子類,則 B的狀態(tài)空間必須被 A的 SP所約束,但是 B的 SP可以從 A的 SP中得到擴展; ? 類不變式限制了類的狀態(tài)空間大小。子類繼承父類的不變式,同時增加自己的類不變式; ? 每個類的方法有自己的前提條件和后置條件; ? 如果類 B是類 A的真正的子類型,則 B必須與 A保持一致。即在任何具有類 A對象的環(huán)境及不執(zhí)行任何修改方法的環(huán)境中都可以接受類 B的對象; Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 72 小結(jié)(續(xù)) ? 合理的父類 /子類層次遵守父類型 /子類型層次。這需要保證: C::Inv?P::Inv;每個父類的方法在子類中都有相同的名字和簽名的方法; C::PreC?P::PreC; C::PostC?P::PostC。 ? 合理類層次中的每個類都必須遵守閉合行為原則:要求由父類繼承而來的子類行為必須遵守子類的類不變式。 ? 繼承和多態(tài)的危險性 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 73 4. OO設(shè)計原則 繼承和多態(tài) ? A. 繼承的危險性 ? B. 多態(tài)的危險性 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 74 A. 繼承帶來的問題 ? 許多人認(rèn)為繼承是 OO的最強的一面 ? 因此,在他們的設(shè)計中盡可能多地使用繼承 ? 結(jié)果是: ? 繼承的不適當(dāng)?shù)氖褂? ? 子類獲得不合適的行為 ? 笨拙或 rigid 的類層次 ? 維護困難 ? 幾個例子說明這幾個問題: Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 75 ? What’s wrong with these classinheritance hierarchies? AIRPLANE ENGINE TAIL FUSELAGE WING AIRPLANE ENGINE TAIL FUSELAGE WING 錯誤的聚集 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 76 ? What’s wrong with this hierarchy? ? What’s wrong here? EMPLOYEE MANAGER ENDANGERED SPECIES BEAR PANDA 集成層次顛倒 類和實例的混淆 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 77 BEAR / species = bear PANDA / species = panda ANIMAL species SPECIES {abstract} taxonomicname / whetherendangered ENDANGERED SPECIES / whetherendangered = true / datefirstendangered NONENDANGERED SPECIES / whetherendangered = false 0..* 1 belongs to Solution Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 78 An equivalent 0..* 0..1 preferably purchased from 0..* 1 belongs to WIDGET / productline = widget PRODUCTITEM productline serialno VENDOR name address PURCHASED PRODUCTLINE / whetherpurchased = true preferredvendor PRODUCTLINE {abstract} whetherpurchased MANUFACTURED PRODUCTLINE /whetherpurchased = false Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 79 ? Here’s the issue ? A room in our application is a cuboid ? We need to remember the length, width and height of each room ? We also need to know the volume of a room ? In our class library we already have the class CUBOID ? Comment on this design CUBOID ROOM CUBOID length width height / volume Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 80 ? One possible design A more general design ROOM / volume / shape: 3DSHAPE 0..* 1 has shape of CUBOID length width height / volume 3DSHAPE {abstract} / volume {abstract} CYLINDER diameter height / volume CUBOIDROOM / volume / shape: CUBOID 0..* 1 has shape of CUBOID length width height / volume Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 81 B. 多態(tài)的危險性 ? 危險性在于:對象可能接受一個它并不理解的消息,這可能引起一個運行期錯誤。 內(nèi)容: ? 消息中的多態(tài) ? 多態(tài)和抽象 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 82 消息中的多態(tài) ?概念: ?方法 m的多態(tài)作用域( SOP):是定義 m的類的集合。形成繼承分支的 A的 SOP稱為多態(tài)頂點 ( AOP, apex of polymorphism), A的多態(tài)錐體( COP, Cone of polymorphism ) 。 ? 多態(tài)同時適用于方法(定義在幾個類中)和變量(在不同時間指向不同類的對象)。這兩方面同時起作用時,OO的威力才全部顯現(xiàn)。 但是兩者有沖突。 . . A . . . . . . . . . . . AOP COP Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 83 例子 ? 方法 area的 COP結(jié)構(gòu) POLYGON area Triangle area Rectangle area Hexagon area Octagon area AOP Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 84 變量的多態(tài)作用域 ? 變量 V的多態(tài)作用域 是由 v(在 v的生存期 )指向的對象可能歸屬的類集合 . ? 例 : ? 假設(shè)聲明 var t: triangle, 允許變量 t指向類Triangle和它所有子類的任何對象 .(這在C++中是自然的 ). 變量 t的 SOP形成了以Triangle為頂點的錐體 . ? 假設(shè)變量 v允許指向類 Horse, Circle, 或者Customer的一個對象 (在 Smalltalk中允許 ). 這里 ,變量 v的 SOP無法形成一個錐體 . 因為他們沒有一個公共的父類形成 AOP. Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 85 消息的變量和方法的 SOP的關(guān)系 ? 消息包含變量 (指向一個目標(biāo)對象 )和方法名 (表示一個被激活的方法 ). ? 消息的變量和方法的 SOP的關(guān)系 , 會給系統(tǒng)的可靠性帶來影響 . 假設(shè)變量和方法的SOP形成了 COP. ? 有消息 , tobj和 tm的 COP有兩種關(guān)系 : Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 86 Two Cases ? tobj的 COP包含在 tm的 COP內(nèi)部 . 即變量的COP在方法的 COP中 . ? tobj的 COP的一部分不包含在 tm的 COP中 . 即變量的 COP的一部分不在方法的 COP中 . 方法的 COP 變量的 COP Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計方法學(xué) All Rights Reserved 87 Two Cases Ex
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1