


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、uml 靜態(tài)視圖泛化泛化 泛化關(guān)系是類元的一般描述和具體描述之間的關(guān)系,具體描述建立在一般描述的基礎(chǔ)之上,并對(duì)其進(jìn)行了擴(kuò)展。具體描述與一般描述完全一致所有特性、成員和關(guān)系,并且包含補(bǔ)充的信息。例如,抵押是借貸中具體的一種,抵押保持了借貸的基本特性并且加入了附加的特性,如房子可以作為借貸的一種抵押品。一般描述被稱作父,具體描述被稱作子如借貸是父而抵押則是子。泛化在類元(類、接口、數(shù)據(jù)類型、用例、參與者、信號(hào)等等)、包、狀態(tài)機(jī)和其他元素中使用。在類中,術(shù)語(yǔ)超類和子類代表父和子。 泛化用從子指向父的箭頭表示,指向父的是一個(gè)空三角形(如 圖 4 7 表示)。多個(gè)泛化關(guān)系可以用箭頭線組成的樹(shù)來(lái)表示,每一
2、個(gè)分支指向一個(gè)子類。圖 47 泛化表示法 泛化的用途泛化有兩個(gè)用途。第一個(gè)用途是用來(lái)定義下列情況:當(dāng)一個(gè)變量(如參數(shù)或過(guò)程變量)被聲明承載某個(gè)給定類的值時(shí),可使用類(或其他元素)的實(shí)例作為值,這被稱作可替代性原則(由 Barbara Liskov 提出)。該原則表明無(wú)論何時(shí)祖先被聲明了,則后代的一個(gè)實(shí)例可以被使用。例如,如果一個(gè)變量被聲明擁有借貸,那么一個(gè)抵押對(duì)象就是一個(gè)合法的值。 泛化使得多態(tài)操作成為可能,即操作的實(shí)現(xiàn)是由它們所使用的對(duì)象的類,而不是由調(diào)用者確定的。這是因?yàn)橐粋€(gè)父類可以有許多子類,每個(gè)子類都可實(shí)現(xiàn)定義在類整體集中的同一操作的不同變體。例如,在抵押和汽車借貸上計(jì)算利息會(huì)有所不同
3、,它們中的每一個(gè)都是父類借貸中計(jì)算利息的變形。一個(gè)變量被聲明擁有父類,接著任何子類的一個(gè)對(duì)象可以被使用,并且它們中的任何一個(gè)都有著自己獨(dú)特的操作。這一點(diǎn)特別有用,因?yàn)樵诓恍枰淖儸F(xiàn)有多態(tài)調(diào)用的情況下就可以加入新的類。例如,一種新的借貸可被新增加進(jìn)來(lái),而現(xiàn)存的用來(lái)計(jì)算利息操作的代碼仍然可用。一個(gè)多態(tài)操作可在父類中聲明但無(wú)實(shí)現(xiàn),其后代類需補(bǔ)充該操作的實(shí)現(xiàn)。這種不完整操作是抽象的(其名稱用斜體表示)。 泛化的另一個(gè)用途是在共享祖先所定義的成分的前提下允許它自身定義增加的描述,這被稱作繼承。繼承是一種機(jī)制,通過(guò)該機(jī)制類的對(duì)象的描述從類及其祖先的聲明部分聚集起來(lái)。繼承允許描述的共享部分只被聲明一次而可以
4、被許多類所共享,而不是在每個(gè)類中重復(fù)聲明并使用它,這種共享機(jī)制減小了模型的規(guī)模。更重要的是,它減少了為了模型的更新而必須做的改變和意外的前后定義不一致。對(duì)于其他成分,如狀態(tài)、信號(hào)和用例,繼承通過(guò)相似的方法起作用。 · 繼承 每一種泛化元素都有一組繼承特性。對(duì)于任何模型元素的包括約束。對(duì)類元而言,它們同樣包括一些特性(如屬性、操作和信號(hào)接收)和關(guān)聯(lián)中的參與者。一個(gè)子類繼承了它的所有祖先的可繼承的特性。它的完整特性包括繼承特性和直接聲明的特性。 對(duì)類元而言,沒(méi)有具有相同特征標(biāo)記的屬性會(huì)被多次聲明,無(wú)論直接的或繼承的,否則將發(fā)生沖突,且模型形式錯(cuò)誤。換而言之,祖先聲明過(guò)的屬性不能被后代再次
5、聲明。如果類的接口一致(具有同樣的參數(shù)、約束和含義),操作可在多個(gè)類中聲明。附加的聲明是多余的。一個(gè)方法在層次結(jié)構(gòu)中可以被多個(gè)類聲明,附在后代上的方法替代(重載)在任何祖先中聲明過(guò)的具有相同特征標(biāo)記的方法。如果一個(gè)方法的兩個(gè)或多個(gè)副本被一個(gè)類繼承(通過(guò)不同類的多重繼承),那么它們會(huì)發(fā)生沖突并且模型形式錯(cuò)誤(一些編程語(yǔ)言允許顯式選定其中的一種方法。我們發(fā)現(xiàn)如果在后代類中重新定義方法會(huì)更簡(jiǎn)單、安全)。元素中的約束是元素本身及它所有祖先的約束的聯(lián)合體,如果它們存在不一致,那么模型形式錯(cuò)誤。 在一個(gè)具體的類中,每一個(gè)繼承或聲明的操作都必須有一個(gè)已定義的方法,無(wú)論是直接定義或從祖先那里繼承而來(lái)的。
6、183; 多重繼承 如果一個(gè)類元有多個(gè)父類,那么它從每一父類那里都可得到繼承信息(如圖 4-8 )。它的特征(屬性、操作和信號(hào))是它的所有父類特征的聯(lián)合。如果同一個(gè)類作為父類出現(xiàn)在多條路徑上,那么它的每一個(gè)成員中只有它的一個(gè)拷貝。如果有著同樣特征的特性被兩個(gè)類聲明,而這兩個(gè)類不是從同一祖先那里繼承來(lái)的(即獨(dú)立聲明),那么聲明會(huì)發(fā)生沖突并且模型形式錯(cuò)誤。因?yàn)榻?jīng)驗(yàn)告訴我們?cè)O(shè)計(jì)者應(yīng)自行解決這個(gè)問(wèn)題,所以 UML 不提供這種情形的沖突解決方案。像 Eiffel 這樣的語(yǔ)言允許沖突被程序設(shè)計(jì)者明確地解決,這比隱式的沖突解決原則要安全,而這些原則經(jīng)常使開(kāi)發(fā)者大吃一驚。 圖 48 多重繼承 · 單
7、分類和多重分類 在最簡(jiǎn)單的形式中,一個(gè)對(duì)象僅屬于一個(gè)類,許多面向?qū)ο蟮恼Z(yǔ)言有這種限制。一個(gè)對(duì)象僅屬于一個(gè)類并沒(méi)有邏輯上的必要性,我們只要從多個(gè)角度同時(shí)觀察一下真實(shí)世界的對(duì)象就可以發(fā)現(xiàn)這一點(diǎn)。在 UML 更概括的形式中,一個(gè)對(duì)象可以有一個(gè)或多個(gè)類。對(duì)象看起來(lái)就好像它屬于一個(gè)隱式類,而這個(gè)類是每個(gè)直接父類的子類 多重繼承可以免去再聲明一個(gè)新類,這可提高效率。 · 靜態(tài)與動(dòng)態(tài)類元 在最簡(jiǎn)單的形式中,一個(gè)對(duì)象在被創(chuàng)建后不能改變它的類。我們?cè)俅握f(shuō)明,這種限制并沒(méi)有邏輯上的必要性,而是最初目地是使面向?qū)ο缶幊陶Z(yǔ)言的實(shí)現(xiàn)更容易些。在更普遍的形式下,一個(gè)對(duì)象可以動(dòng)態(tài)改變它的類,這么做會(huì)得到或失去一些屬性或關(guān)聯(lián)。如果對(duì)象失去了它們,那么在它們中的信息也就失去了并且過(guò)后也不能被恢復(fù),哪怕這個(gè)對(duì)象變回了原來(lái)的類。如果這個(gè)對(duì)象得到了屬性或關(guān)聯(lián),那么它們必須在改變時(shí)就初始化,就像初始化一個(gè)新對(duì)象一樣。 當(dāng)多重分類和動(dòng)態(tài)分類一起使用時(shí),一個(gè)對(duì)象就可以在它的生命期內(nèi)得到或失去類。動(dòng)態(tài)類有時(shí)被稱作角色或類型。一個(gè)常見(jiàn)的建模模式是每個(gè)對(duì)象有一個(gè)唯一的靜態(tài)的固有類(即不能在對(duì)象
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025太陽(yáng)能槽式復(fù)合拋物面聚光集熱土壤儲(chǔ)熱技術(shù)
- 個(gè)人勞動(dòng)法權(quán)益保障合同
- 個(gè)人抵押借款擔(dān)保合同
- 分期付款購(gòu)買機(jī)動(dòng)車合同書(shū)
- 醫(yī)療器械藥品購(gòu)銷合同
- 醫(yī)院場(chǎng)地租賃合同書(shū)樣本
- 五金電器銷售合同6篇
- 2025年紅河b2貨運(yùn)上崗證模擬考試
- 合同范本銷售人員聘用合同7篇
- 面板自動(dòng)檢測(cè)機(jī)競(jìng)爭(zhēng)策略分析報(bào)告
- 2025年黑龍江農(nóng)墾職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)完整版
- 2025年02月黃石市殘聯(lián)專門協(xié)會(huì)公開(kāi)招聘工作人員5人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 1.1 青春的邀約 課件 2024-2025學(xué)年七年級(jí)道德與法治下冊(cè)
- 取水許可申請(qǐng)書(shū)范本
- 蚌埠介紹-蚌埠簡(jiǎn)介課件(經(jīng)典版)
- GB/T 15561-2024數(shù)字指示軌道衡
- 探究煙花爆竹知識(shí)產(chǎn)權(quán)-洞察分析
- 網(wǎng)絡(luò)保險(xiǎn)風(fēng)險(xiǎn)評(píng)估-洞察分析
- 呼吸機(jī)濕化的護(hù)理
- 2024“五史”全文課件
- 醫(yī)療器械法律法規(guī)培訓(xùn)
評(píng)論
0/150
提交評(píng)論