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