1. 程式人生 > >UML類圖關係(泛化、依賴、關聯、聚合、組合)

UML類圖關係(泛化、依賴、關聯、聚合、組合)

一、泛化關係

表示類與類之間的繼承關係,介面與介面之間的繼承關係,或類對介面的實現關係。一般化的關係是從子類指向父類的,與繼承或實現的方法相反。

二、關聯關係

表示類與類之間的聯接,它使一個類知道另一個類的屬性和方法。體現的是兩個類、或者類與介面之間語義級別的一種強依賴關係,不存在依賴的偶然性、關係也不是臨時性的,一般是長期的,而且雙方的關係一般是平等的。表現在程式碼層為被關聯類以B類屬性的形式出現在關聯類A中。

三、聚合關係

關聯關係的一種特例,是強的關聯關係。聚合是整體和個體之間的關係。聚合關係也是使用例項變數實現的。從Java語法上是分不出關聯和聚合的。關聯關係中兩個類是處於相同的層次,而聚合關係中兩個類是處於不平等的層次,一個表示整體,一個表示部分。

四、組合關係

關聯關係的一種特例,他體現的是一種contains-a的關係,這種關係比聚合更強,也成為強聚合;它同樣體現整體與部分的關係,但此時整體與部分是不可分的,整體的宣告週期也就意味著部分的宣告週期結束;比如你和你的大腦;合成關係不能共享。表現在程式碼層面,和關聯關係是一致的,只能從語義級別來區分。

五、依賴關係

也是類與類之間的連線。表示一個類依賴於另一個類的定義。依賴關係總是單向的。可以簡單的理解,就是一個類A使用了另一個類B,而這種使用關係是具有偶然性的、臨時性的、非常弱的。在Java中。依賴關係體現為:區域性變數、方法中的引數、和靜態方法的呼叫。