UML類圖中的關系分為四種:泛化、依賴、關聯(lián)、實現(xiàn);關聯(lián)關系又可以細化為聚合和組合。
1. 泛化(Generalization)
泛化是父類和子類之間的關系,子類繼承父類的所有結構和行為。在子類中可以增加新的結構和行為,也可以覆寫父類的行為。
2. 依賴(Generalization)
依賴關系是一種使用關系,特定事物的改變有可能會影響到使用該事物的事物,反之不成立。在你想顯示一個事物使用另一個事物時使用。
通常情況下,依賴關系體現(xiàn)在某個類的方法使用另一個類作為參數(shù) 。
3. 關聯(lián)(Dependency)
關聯(lián)是一種結構化的關系,指一種對象和另一種對象有聯(lián)系。給定有關聯(lián)的兩個類,可以從一個類的對象得到另一個類的對象。關聯(lián)有兩元關系和多元關系。兩元關系是指一種一對一的關系,多元關系是一對多或多對一的關系。一般用實線連接有關聯(lián)的同一個類或不同的兩個類。當你想要表示結構化關系時使用關聯(lián)。
關聯(lián)關系是通過類的成員變量 來實現(xiàn)的。
3.1 聚合(Aggregation)
聚合是一種特殊的關聯(lián)。它描述了“has a”關系,表示整體對象擁有部分對象。
關聯(lián)關系和聚合關系來語法上是沒辦法區(qū)分的,從語義 上才能更好的區(qū)分兩者的區(qū)別。聚合是較強的關聯(lián)關系,強調的是整體與部分 之間的關系。
與關聯(lián)關系一樣,聚合關系也是通過類的成員變量 來實現(xiàn)的。
3.2 組合(Composition)
組合是聚合的一種形式,它具有更強的擁有關系,強調整體與部分的生命周期 是一致的。整體負責部分的生命周期的管理。如果整體被銷毀,部分也必須跟著一起被銷毀,如果所有者被復制,部分也必須一起被復制。
與關聯(lián)關系一樣,組合關系也是通過類的成員變量 來實現(xiàn)的。
4. 實現(xiàn)(Realization)
實現(xiàn)關系指定兩個實體之間的一個合約。換言之,一個實體定義一個 合約 ,而另一個實體保證履行該 合約 。