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