【UML】2.部分與整體的媒介:關係

00潤物無聲00發表於2014-11-16

UML模組中的任何事物都不是獨立存在的,他們之間存在著一定的關係。下面就對這些關係,分類瞭解一下。

一.概念

【關聯】Association

兩個類存在某種語義上的聯絡,關聯有單向關聯和雙向關聯。

【聚合】Aggregation

類之間是整體和部分的關係。”聚”表示聚在一起的意思,也表示“部分”可以獨立”整體”存在。描述“has-a”的關係。

【組合】Composition

整體有管理部分的特有的職責並且他們有一致的生命期,部分不能脫離整體存在。描述“contains-a”的關係。

【泛化】Generalization

泛化是一般事物和該事物特殊種類之間的關係,描述類之間“Is a kind of”的關係。子類繼承父類,又分為單繼承和多繼承,由名字可知:子類繼承單個父類的屬性和操作就是單繼承。

泛化的通過修改父類而修改子類共同的屬性和方法,實現程式碼的重用,也有利於系統維護。

【依賴】Dependency

是兩個事物之間的使用關係。A依賴於B。當B發生改變的時候A也會改變。

【實現】Realization

用來規定介面和實現介面的類或元件之間的關係,不繼承結構只繼承行為。一個介面的實現,要先實現對應的類,一個類可以有多個介面。實現使用的情況:1.在介面與實現介面的類間。2.在用例以及實現該用例的協作間

二、例項

【關聯】一個人為一家公司工作

【聚合】書架上放著書

【組合】鳥和翅膀

【泛化】人類,分為男人和女人

【依賴】系統和單個窗體

【實現】籃球得分的方式。扣籃,投籃,罰球

三、Rational Rose表示

【關聯】

1.關聯用橫實線表示 2.employee表示person類扮演的角色 3.n和1表示多重性關係。一個公司有許多員工

【聚合】

1.聚合用帶空心菱形頭的實線表示 2.菱形頭指向整體。




【組合】

在聚合的基礎上把空心的變成實心的。




【泛化】

1.帶空心箭頭的實線表示 2.由子類指向父類 3.此圖表示單繼承



【依賴】

1.帶箭頭的虛線表示 2.A依賴於B,則A指向B




【實現】

1.帶空心箭頭的虛線表示 2.一個類可以有多個介面 3.類指向介面


四、對比分析

1.聚合和組合是特殊的關聯。某種意義上說,關聯,泛化和實現都屬於依賴關係的一種。

2.聚合和組合都表示部分和整體的關係。但是聚合表示部分能夠脫離整體而存在。例如汽車和輪胎。而組合表示部分不能脫離整體存在。當整體不存在了,部分也就沒有存在的意義。例如鳥和翅膀。不過同一個部分和整體在不同的環境中,表示也可能不同。例如對於汽車製造商來說,汽車和輪胎是聚合關係。而對於汽車銷售商來說,汽車和輪胎就是組合的關係了。

3.這幾種關係是語義級別的不同。按照關係表現的強弱依次是:泛化=實現>組合>聚合>關聯>依賴

 五、總結

通過學習UML中的六種關係,掌握每一種關係所表示的意義,在實際系統中能夠對類之間的關係進行區分,同時能夠用Rational Rose工具將這六種關係正確的表示出來。

相關文章