UML關係的簡單說明

1、UML中的常見關係

  • 1.泛化(Generalization);
  • 2.實現(Realization);
  • 3.依賴(Dependency);
  • 4.關聯(Association);
  • 5.聚合(Aggregation);
  • 6.組合(Compostion);

2、泛化(Generalization)

2.1 說明

泛化(Generalization)關係是指,一個類或繼承了另一個類,或一個接口繼承了另一個接口。post

2.2 表示

Java中採用extends來表示泛化(Generalization)關係。spa

3、實現(Realization)

3.1 說明

實現(Realization)關係是指,一個類實現了一個或多個接口。對象

3.2 表示

Java中採用implements來表示實現(Realization)關係。繼承

4、依賴(Dependency)

4.1 說明

依賴(Dependency)關係也是表示類與類之間的鏈接,表示一個類依賴於另一個類的定義,依賴關係是單向的。接口

簡單理解就是類A使用到了類B,這種依賴具備偶然性、臨時性,是很是弱的關係。可是類B的變化會影響到類A。生命週期

4.2 表示

Java中,依賴(Dependency)關係的表現爲:被依賴的類爲方法中局部變量、方法中的參數或靜態方法的調用。ci

5、關聯(Association)

5.1 說明

關聯(Association)關係表示類與類之間的鏈接,它使得一個類知道另一個類的屬性和方法。io

關聯(Association)關係可使用單箭頭表示單向關聯,使用雙箭頭或者不適用箭頭表示雙向關聯,不建議使用雙向關聯。變量

關聯(Association)關係有兩個端點,每一個端點能夠有一個基數,表示這個關聯的類能夠有幾個實例。sso

  • 0..1 表示能夠有0個或者1個實例;
  • 0..* 表示對實例的數目沒有限制;
  • 1 表示只能有一個實例;
  • 1..* 表示至少有一個實例;

關聯(Association)關係體現的是兩個類,或者類與接口之間的強依賴關係,這種關係很強烈。比依賴更強,不是偶然性的,也不是臨時性的,而是一種長期性,相對平等的關係。

5.2 表示

Java中,關聯(Association)關係的表現爲:被關聯的類B以類屬性的形式出如今類A中,也多是關聯類A引用了被關聯類B的全局變量。

6、聚合(Aggregation)

6.1 說明

聚合(Aggregation)關係是關聯(Association)關係的一個特例,是一種強依賴關係,它在關聯(Association)關係上,強調了Has-a關係。

Has-a關係表示總體和部分是能夠分離的,他們具備各自的生命週期,部分能夠屬於多個對象,也能夠被多個對象共享。

好比計算機和CPU、公司與員工等關係。

6.2 表示

Java中,聚合(Aggregation)關係也是使用屬性的形式來實現的,在Java語法上區分不出關聯(Association)和聚合(Aggregation)。

7、組合(Compostion)

7.1 說明

組合(Compostion)關係也是關聯(Association)關係的一個特例,是一種強依賴關係,比聚合(Aggregation)關係更強,強調了Contain-a關係。

它一樣體現總體與部分的關係,但此時總體與部分是不可分的,總體生命週期的結束也意味着部分生命週期的結束,反之亦然。如大腦和人類。

7.2 表示

Java中,組合(Compostion)關係也是使用屬性的形式來實現的,在Java語法上區分不出關聯(Association)、聚合(Aggregation)和組合(Compostion)。

8、總結

主要是關聯關係的細化須要注意強弱,由若到強分別是 依賴 < 關聯 < 聚合 < 組合。

組合與聚合幾乎徹底相同,惟一區別就是對於組合,「部分」不一樣脫離「總體」單獨存在,其生命週期應該是一致的。

相關文章
相關標籤/搜索