今天學習了UML的相關知識做一下簡單的總結。
類圖是面向對象系統建模中比較常見的圖,在UML類圖中有以下的幾種關係:
1.泛化關係2.依賴關係3.組合關係4.聚合關係5.實現關係6.關聯關係
下面一一介紹上述的6種關係。
1.泛化關係(Generalization)
泛化關係是一種繼承關係,表示一般與特殊的關係,它指定了子類如何特化父類的所有特徵和行爲。在代碼中的體現主要是子類與父類的關係。
描述: Is a kind of
圖形的表示爲:
帶三角箭頭的實線,箭頭指向父類
圖表示如下:
2.依賴關係(Dependency)
依賴關係是一種使用的關係,即一個類的實現需要另一個類的協助,所以要儘量不使用雙向的互相依賴。在代碼中的體現可能是局部變量、方法的參數或者對靜態方法的調用等。在參數或者方法體中使用到另外的類就是對該類有依賴的關係。
描述:use a
圖形的表示爲:
帶箭頭的虛線,指向被使用者
圖表示如下:
3.組合關係(Composition)
組合關係是整體與部分的關係,但部分不能離開整體而單獨存在。組合關係是關聯關係的一種,是比聚合關係還要強的關係(下面將要介紹),它要求普通的聚合關係中代表整體的對象負責代表部分的對象的生命週期。在代碼中的體現可能是成員變量等。
描述:Has a
圖形的表示爲:
帶實心菱形的實線,菱形指向整體
組合:A對象是B對象的一個組成部份,除非B對象將A對象轉交給其他對象,否則A對象只能是B對象的組成部分
圖表示如下:
4.聚合關係(Agrregation)
聚合關係是整體與部分的關係,且部分可以離開整體而單獨存在。如車和輪胎是整體和部分的關係,輪胎離開車仍然可以存在。聚合關係是關聯關係的一種,是強的關聯關係;關聯和聚合在語法上無法區分,必須考察具體的邏輯關係。在代碼中的體現可能是成員變量等。
描述:Has a
圖形的表示爲:
帶空心菱形的實心線,菱形指向整體
A對象是B對象的一個組成部份,但A對象同時可能是C對象的組成部分。
圖表示如下:
5.實現關係(Realization)
實現關係是一種類與接口的關係,表示類是接口所有特徵和行爲的實現。在代碼中的體現主要是類對接口的實現。
描述:Implement
圖形的表示爲:
帶三角箭頭的虛線,箭頭指向接口
圖表示如下:
6.關聯關係(Association)
關聯關係是一種擁有的關係,它使一個類知道另一個類的屬性和方法;雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。在代碼中的體現是成員變量。
描述:Has a
圖形的表示爲:
帶普通箭頭的實心線,指向被擁有者
雙向關聯:通過A對象可以找到B對象,B對象同樣可以找到A對象的關聯。
圖表示如下:
單向關聯:通過A對象可以找到B對象,但通過B對象不能找到A對象的關聯。
圖表示如下:
希望我的總結能夠幫助到大家!