一.泛化。
泛化是指類之間繼承的關系。一句話,is-a。
泛化關系使用實作空心三角表示,如下圖:
二.依賴。
依賴關系是指類在實作某一功能時對另一個類的服務的依賴。依賴關系的特點展現在局部,臨時。一般用在局部變量,方法參數以及靜态方法的調用等。依賴關系用虛線箭頭表示,如下圖:
三.關聯。
一個對象的執行個體和另一個對象的執行個體存在固定的依賴關系。表現為後者是前者的一個執行個體變量。
即has-a關系。
關聯關系有五種:
以上分别為雙向關聯和單向關聯:雙向關聯意味着兩個類彼此知道它們間的聯系,而單向關聯隻有一個類知道這種聯系的存在。
以下為可能的多重值描述:
可能的多重值描述 | |
表示 | 含義 |
---|---|
0..1 | 0個或1個 |
1 | 隻能1個 |
0..* | 0個或多個 |
* | 0個或多個 |
1..* | 1個或多個 |
3 | 隻能3個 |
0..5 | 0到5個 |
5..15 | 5到15個 |
四.聚合。
聚合是一種特殊的關聯關系。它強調的是構件組成整體的關系。即整體由構件組成。
聚合和關聯的差別:
1.關聯關系的兩個對象是在同一個層次上的。比如人和電腦,聚合關系強調組成,比如電腦和他的顯示器,鍵盤等就是聚合關系,電腦是由這些構件組成的,而人不是由電腦組成,隻是強調一種使用的關聯關系。
2.聚合關系中的構件和整體對象,可以有相同的生命周期,這種聚合稱為組合聚合,反之叫做基本聚合。
以上分别是基本聚合群組合聚合的例子。
最後看一下類元素的表示,CFamily是一個非抽象類,而CPerson是一個抽象類,類名用斜體表示:
接口的表示如下,因為方法都為抽象方法,是以方法名用斜體表示
此外,一條帶有閉合的單向箭頭的點 線意味着實作(或實施implements);一條帶有閉合單向箭頭的實線表示繼承(extends)。