1. 程式人生 > >UML類圖中的三種關系----關聯、聚合和泛化

UML類圖中的三種關系----關聯、聚合和泛化

ron 內存 gre 區別 分享 聚合 兩個 說明 鍵盤

一、關聯association

1、解釋說明:

  表示兩種類實例間的關系。如果一個類的實例必須要用另一個類的實例才能完成工作時就要用關聯。關聯關系時在類中是使用實例變量來定義實現的。

2、在圖中,關聯用兩個類之間的連線表示。例圖:

技術分享

二、聚合aggregation

1、解釋說明:

  當對象A被加入到對象B中,成為對象B的組成部分時,對象B和A之間為聚集關系。聚合是關聯關系的一種,是較強的關聯關系,強調整體與部分之間的關系。與關聯關系一樣,聚合關系也是通過實例變量來實現的。

2、在圖中,聚合用一個帶菱形的連線,菱形指向具有整體性質的類。例圖:

技術分享

4、關聯與聚合的區別

  在語法上是難以區分的,在語義上才能更好的區分兩者的區別。關聯關系所涉及的兩個對象是處在同一個層次上的。比如人和自行車就是一種關聯關系,而不是聚合關系,因為人不是自行車的組成部分。聚合關系涉及的兩個對象處於不平等的層次上,一個代表整體,一個代表部分。比如:電腦和它的顯示器、鍵盤、主板和內存就是聚集關系。

三、泛化generalization

1、解釋說明:

  泛化是一種繼承關系,如果一個類A的所有屬性和操作能被另一個類B所繼承,則類B不僅可以包含自己獨有的屬性,而且可以包含類A的屬性和操作。繼承是類與類或者類與接口之間最常見的關系。

2、在圖中,泛化關系用一個三角形指向超類。例圖:

技術分享

UML類圖中的三種關系----關聯、聚合和泛化