- 在UML類圖中常見的有以下幾種關(guān)系:
泛化(Generalization)、實現(xiàn)(Realization)、組合(Composition)、聚合(Aggregation)、關(guān)聯(lián)(Association)、依賴(Dependency)。 - 各種關(guān)系的強弱順序:
泛化 = 實現(xiàn) > 組合 > 聚合 > 關(guān)聯(lián) > 依賴
1、泛化(Generalization)關(guān)系
-
關(guān)系簡述:
-
is-a關(guān)系。 -
泛化關(guān)系是一種繼承關(guān)系,用于描述父類與子類之間的關(guān)系。例如:學(xué)生屬于人類,他即有學(xué)生的特性也有人類的共性。
-
-
關(guān)系圖形:
-
帶空心三角箭頭的實線,箭頭指向父類。泛化關(guān)系
-
帶空心三角箭頭的實線,箭頭指向父類。
2、實現(xiàn)(Realization)關(guān)系
-
關(guān)系簡述
- 實現(xiàn)關(guān)系是一種類與接口的關(guān)系,表示類是接口所有特征和行為的實現(xiàn),在這種關(guān)系中,類實現(xiàn)了接口,類中的操作實現(xiàn)了接口中所聲明的操作
-
關(guān)系圖形
-
帶空心三角箭頭的虛線,箭頭指向接口。實現(xiàn)關(guān)系
-
帶空心三角箭頭的虛線,箭頭指向接口。
3、組合(Composition)關(guān)系
-
關(guān)系簡述:
-
contains-a關(guān)系。 - 整體與部分的關(guān)系,但是整體與部分
不可以分開。 - 組合關(guān)系中部分和整體具有統(tǒng)一的生存期。一旦整體對象不存在,部分對象也將不存在,部分對象與整體對象之間具有
同生共死的關(guān)系。
-
-
關(guān)系圖形:
-
帶實心菱形的直線,菱形指向整體。組合關(guān)系
-
帶實心菱形的直線,菱形指向整體。
4、聚合(Aggregation)關(guān)系
- 關(guān)系簡述:
-
has-a關(guān)系。 - 整體和部分的關(guān)系,整體與部分
可以分開。 - 他們可以具有各自的生命周期。
-
- 關(guān)系圖形:
-
帶空心菱形的直線,菱形指向整體。聚合關(guān)系
-
帶空心菱形的直線,菱形指向整體。
5、關(guān)聯(lián)(Association)關(guān)系
-
關(guān)系簡述:
- 一種擁有的關(guān)系,它使一個類知道另一個類的屬性和方法,通常將一個類的對象作為另一個類的屬性。
- 分為
單向關(guān)聯(lián)、雙向關(guān)聯(lián)。 - 關(guān)聯(lián)有兩個端點,在每個端點可以有一個基數(shù),表示這個關(guān)聯(lián)的類可以有幾個實例。
-
常見的基數(shù)及含義:
-
0..1表示0 或一個實例。 -
0..*表示對實例的數(shù)目沒有限制。 -
1表示只能有一個實例。 -
1..*表示至少有一個實例。
-
-
關(guān)系圖形:
- 帶普通箭頭的實心線,指向被擁有者。
- 雙箭頭或不使用箭頭表示雙向關(guān)聯(lián)。
-
單箭頭表示單向關(guān)聯(lián)。關(guān)聯(lián)關(guān)系
6、依賴(dependency)關(guān)系
-
關(guān)系簡述:
- 是一種
使用關(guān)系,表示一個類依賴于另一個類的定義。 - 依賴關(guān)系總是
單向的 ??梢院唵蔚睦斫?,一個類A使用到了另一個類B,而這種使用關(guān)系是具有偶然性的、臨時性的、非常弱的,但是B類的變化會影響到A類;
- 是一種
-
代碼提現(xiàn):
- 局部變量、方法中的參數(shù)和對靜態(tài)方法的調(diào)用。
-
關(guān)系圖形:
-
依賴關(guān)系用帶普通箭頭的虛線表示,由依賴的一方指向被依賴的一方。依賴關(guān)系
-
依賴關(guān)系用帶普通箭頭的虛線表示,由依賴的一方指向被依賴的一方。
組合、聚合、關(guān)聯(lián)、依賴的總結(jié)與區(qū)別
組合關(guān)系是關(guān)聯(lián)關(guān)系的一種特例,這種關(guān)系比聚合更強,也稱為強聚合;整體與部分是不可分的,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束;例如:人與人的頭和身體;
聚合關(guān)系也是關(guān)聯(lián)關(guān)系的一種特例, 屬于強的關(guān)聯(lián)關(guān)系;整體與部分之間是可分離的,他們可以具有各自的生命周期。例如:電腦與CPU和鍵盤;
關(guān)聯(lián)關(guān)系屬于一種強依賴關(guān)系,不存在依賴關(guān)系的偶然性、關(guān)系也不是臨時性的,一般是長期性的,而且雙方的關(guān)系一般是平等的, 而聚合關(guān)系中雙方的關(guān)系是不平等的,即:has-a。
依賴關(guān)系是一種使用關(guān)系,單向;這種使用關(guān)系是具有偶然性的、臨時性的、非常弱的。
SDWebImage的UML類圖
- github地址:https://github.com/rs/SDWebImage

SDWebImageClassDiagram.png





