揭秘五種UML類圖關系
本節和大家一起來學習一下幾種UML類圖關系, 主要包括一般化,關聯,聚合,合成和依賴等關系,相信通過本節的學習你對UML類圖關系 一定會有全面的認識。下面請看詳細介紹。
幾種UML類圖關系
一般化關系
一般化(Generalization)關系表示類與類之間的繼承關系,接口與接口之間的繼承關系,或類對接口的實現關系。一般化的關系是從子類指向父類的,或從實現接口的類指向被實現的接口,與繼承或實現的方向相反
關聯關系
UML類圖關系中關聯(Association)關系是類與類之間的聯接,它使一個類知道另一個類的屬性和方法。關聯可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭。單向的關聯有一個箭頭,表示關聯的方向,如下圖所示。單向的關聯更為普遍,通常不鼓勵使用雙向的關聯。關聯關系是使用實例變量實現的。在每個關聯的端點,還可以有一個基數(Multiplicity),表明這一端的類可以有幾個實例
聚合關系
聚合(Aggregation)關系是關聯關系的一種,是強的關聯關系。聚合是整體和個人之間的關系。與關聯關系一樣,聚合關系也是通過實例變量實現的。但是,關聯關系所涉及的兩個類是處在同一個層次上的,而聚合關系中,兩個類是處在不平等的層次上的,一具代表整體,另一個代表部分。關聯與聚合僅僅從語法上是分辨不出的,需要考察所涉及的類之間的邏輯關系。如果不是很確定一個關系是不是聚合關系,可以將之設置為關聯關系。
合成關系
UML類圖關系中合成(Composition)關系是關聯關系的一種,是比聚合關系強的關系。它要求普通的聚合關系中代表整體的對象負責代表部分的對象的生命周期,合成關系是不能共享的。代表整體的對象需要負責保持部分對象的存活,在一些情況下負責將代表部分的對象湮滅掉。代表整體的對象可以將代表部分的對象傳遞給另一個對象,由后者負責此對象的生命周期。換言之,代表部分的對象在每一個時刻只能與一個對象發生合成關系,由后者排他地負責其生命周期。如果不能確定一個關系是不是合成關系,可以將之設置為聚合關系,甚至關聯關系
依賴關系
依賴(Dependency)也是類與類之間的連接,依賴總是單向的,依賴關系表示一個類依賴于另一個類的定義。一般而言,依賴關系在語言中體現為局域變量、方法的參量,以及對靜態方法的調用。換言之,一個類A的某一個局域變量的類型是另一個類B,那么類A就依賴于類B。如果一個方法的參量是另一個類B的實例,那么這個方法所在的類A依賴于類B。如果一個類A調用另一個類B的靜態方法,那么類A依賴于類B。如果類B出現在類A的實例變量中,那么類A與類B的關系就超越了依賴關系,而變成了某一種關聯關系。
【編輯推薦】