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

正文內(nèi)容

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

2025-10-10 04:11本頁(yè)面
  

【正文】 (POLYGON) addvertex (newvertex。 ) Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(xué) All Rights Reserved 69 how best to solve this problem? ? 作為 Triangle的設(shè)計(jì)者,可以采?。? ? 不繼承 add_vertex,或者 ? 覆蓋 add_vertex以使它失效,或者 ? 如果該行為不能保證 Triangle的閉包,但又被應(yīng)用接受,需要將 Triangle的對(duì)象重新分類為 Rectangle。 ? 總之,類的設(shè)計(jì)者有責(zé)任保證行為的類閉包。 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(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) 只傳遞方法期望的類型(也許通過(guò)克?。? ? 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è)計(jì)類層次已避免問(wèn)題 ? Allow the class of the subclass object to change! Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(xué) All Rights Reserved 71 小結(jié) ? 類 A的屬性包括狀態(tài)空間和它允許的行為; ? B是 A的子類,則 B的狀態(tài)空間必須被 A的 SP所約束,但是 B的 SP可以從 A的 SP中得到擴(kuò)展; ? 類不變式限制了類的狀態(tài)空間大小。子類繼承父類的不變式,同時(shí)增加自己的類不變式; ? 每個(gè)類的方法有自己的前提條件和后置條件; ? 如果類 B是類 A的真正的子類型,則 B必須與 A保持一致。即在任何具有類 A對(duì)象的環(huán)境及不執(zhí)行任何修改方法的環(huán)境中都可以接受類 B的對(duì)象; Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(xué) All Rights Reserved 72 小結(jié)(續(xù)) ? 合理的父類 /子類層次遵守父類型 /子類型層次。這需要保證: C::Inv?P::Inv;每個(gè)父類的方法在子類中都有相同的名字和簽名的方法; C::PreC?P::PreC; C::PostC?P::PostC。 ? 合理類層次中的每個(gè)類都必須遵守閉合行為原則:要求由父類繼承而來(lái)的子類行為必須遵守子類的類不變式。 ? 繼承和多態(tài)的危險(xiǎn)性 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(xué) All Rights Reserved 73 4. OO設(shè)計(jì)原則 繼承和多態(tài) ? A. 繼承的危險(xiǎn)性 ? B. 多態(tài)的危險(xiǎn)性 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(xué) All Rights Reserved 74 A. 繼承帶來(lái)的問(wèn)題 ? 許多人認(rèn)為繼承是 OO的最強(qiáng)的一面 ? 因此,在他們的設(shè)計(jì)中盡可能多地使用繼承 ? 結(jié)果是: ? 繼承的不適當(dāng)?shù)氖褂? ? 子類獲得不合適的行為 ? 笨拙或 rigid 的類層次 ? 維護(hù)困難 ? 幾個(gè)例子說(shuō)明這幾個(gè)問(wèn)題: Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(xué) All Rights Reserved 75 ? What’s wrong with these classinheritance hierarchies? AIRPLANE ENGINE TAIL FUSELAGE WING AIRPLANE ENGINE TAIL FUSELAGE WING 錯(cuò)誤的聚集 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(xué) All Rights Reserved 76 ? What’s wrong with this hierarchy? ? What’s wrong here? EMPLOYEE MANAGER ENDANGERED SPECIES BEAR PANDA 集成層次顛倒 類和實(shí)例的混淆 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(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è)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(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è)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(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è)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(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è)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(xué) All Rights Reserved 81 B. 多態(tài)的危險(xiǎn)性 ? 危險(xiǎn)性在于:對(duì)象可能接受一個(gè)它并不理解的消息,這可能引起一個(gè)運(yùn)行期錯(cuò)誤。 內(nèi)容: ? 消息中的多態(tài) ? 多態(tài)和抽象 Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(xué) All Rights Reserved 82 消息中的多態(tài) ?概念: ?方法 m的多態(tài)作用域( SOP):是定義 m的類的集合。形成繼承分支的 A的 SOP稱為多態(tài)頂點(diǎn) ( AOP, apex of polymorphism), A的多態(tài)錐體( COP, Cone of polymorphism ) 。 ? 多態(tài)同時(shí)適用于方法(定義在幾個(gè)類中)和變量(在不同時(shí)間指向不同類的對(duì)象)。這兩方面同時(shí)起作用時(shí),OO的威力才全部顯現(xiàn)。 但是兩者有沖突。 . . A . . . . . . . . . . . AOP COP Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(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è)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(xué) All Rights Reserved 84 變量的多態(tài)作用域 ? 變量 V的多態(tài)作用域 是由 v(在 v的生存期 )指向的對(duì)象可能歸屬的類集合 . ? 例 : ? 假設(shè)聲明 var t: triangle, 允許變量 t指向類Triangle和它所有子類的任何對(duì)象 .(這在C++中是自然的 ). 變量 t的 SOP形成了以Triangle為頂點(diǎn)的錐體 . ? 假設(shè)變量 v允許指向類 Horse, Circle, 或者Customer的一個(gè)對(duì)象 (在 Smalltalk中允許 ). 這里 ,變量 v的 SOP無(wú)法形成一個(gè)錐體 . 因?yàn)樗麄儧](méi)有一個(gè)公共的父類形成 AOP. Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(xué) All Rights Reserved 85 消息的變量和方法的 SOP的關(guān)系 ? 消息包含變量 (指向一個(gè)目標(biāo)對(duì)象 )和方法名 (表示一個(gè)被激活的方法 ). ? 消息的變量和方法的 SOP的關(guān)系 , 會(huì)給系統(tǒng)的可靠性帶來(lái)影響 . 假設(shè)變量和方法的SOP形成了 COP. ? 有消息 , tobj和 tm的 COP有兩種關(guān)系 : Chap9數(shù)據(jù)抽象與面向?qū)ο蟪绦蛟O(shè)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(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è)計(jì) 2021/11/10 鮑玉斌 東大信息學(xué)院軟件所 程序設(shè)計(jì)方法學(xué) All Rights Reserved 87 Two Cases Ex
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1