UML類圖依賴關(guān)系和其他關(guān)系區(qū)別
本節(jié)和大家學習一下UML類圖依賴關(guān)系和其他關(guān)系區(qū)別,UML類圖中的關(guān)系分為四種,這里向大家一一介紹,相信通過本節(jié)的介紹你對UML類圖依賴關(guān)系以及其他幾種關(guān)系有明確的認識。
UML類圖依賴關(guān)系和其他關(guān)系區(qū)別
UML類圖中的關(guān)系分為四種:UML類圖依賴關(guān)系、泛化關(guān)系、關(guān)聯(lián)關(guān)系、實現(xiàn)關(guān)系;關(guān)聯(lián)關(guān)系又可以細化為聚合和組合。
1. 泛化(Generalization)
泛化是父類和子類之間的關(guān)系,子類繼承父類的所有結(jié)構(gòu)和行為。在子類中可以增加新的結(jié)構(gòu)和行為,也可以覆寫父類的行為。

2. 依賴(Dependencies)
UML類圖依賴關(guān)系是一種使用關(guān)系,特定事物的改變有可能會影響到使用該事物的事物,反之不成立。在你想顯示一個事物使用另一個事物時使用,兩個元素之間的一種關(guān)系,其中一個元素(服務(wù)者)的變化將影響另一個元素(客戶),或向它(客戶)提供所需信息。它是一種組成不同模型關(guān)系的簡便方法。依賴表示兩個或多個模型元素之間語義上的關(guān)系。它只將模型元素本身連接起來而不需要用一組實例來表達它的意思。它表示了這樣一種情形,提供者的某些變化會要求或指示依賴關(guān)系中客戶的變化。
根據(jù)這個定義,關(guān)聯(lián)和泛化都是依賴關(guān)系,但是它們有更特別的語義,故它們有自己的名字和詳細的語義。我們通常用依賴這個詞來指其他的關(guān)系。依賴用一個從客戶指向提供者的虛箭頭表示,用一個構(gòu)造型的關(guān)鍵字來區(qū)分它的種類,通常情況下,UML類圖依賴關(guān)系體現(xiàn)在某個類的方法使用另一個類作為參數(shù) 。

3. 關(guān)聯(lián)(Association)
關(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)的同一個類或不同的兩個類。當你想要表示結(jié)構(gòu)化關(guān)系時使用關(guān)聯(lián),如果幾個類元的實例之間有聯(lián)系,那么這幾個類元之間的語義關(guān)系即關(guān)聯(lián)。關(guān)聯(lián)描述了系統(tǒng)中對象或?qū)嵗g的離散連接。
關(guān)聯(lián)將一個含有兩個或多個有序表的類元,在允許復(fù)制的情況下連接起來。最普通的關(guān)聯(lián)是一對類元之間的二元關(guān)聯(lián)。關(guān)聯(lián)的實例之一是鏈。每個鏈由一組對象(一個有序列表)構(gòu)成,每個對象來自于相應(yīng)的類。二元鏈包含一對對象。關(guān)聯(lián)帶有系統(tǒng)中各個對象之間關(guān)系的信息。當系統(tǒng)執(zhí)行時,對象之間的連接被建立和銷毀。關(guān)聯(lián)關(guān)系是整個系統(tǒng)中使用的“膠粘劑”,如果沒有它,那么只剩下不能一起工作的孤立的類。在關(guān)聯(lián)中如果同一個類出現(xiàn)不止一次,那么一個單獨的對象就可以與自己關(guān)聯(lián)。如果同一個類在一個關(guān)聯(lián)中出現(xiàn)兩次,那么兩個實例就不必是同一個對象,通常的情況都如此。二元關(guān)聯(lián)用一條連接兩個類的連線表示。
聚集表示部分與整體關(guān)系的關(guān)聯(lián),它用端點帶有空菱形的線段表示,空菱形與聚集類相連接。組成是更強形式的關(guān)聯(lián),整體有管理部分的特有的職責,它用一個實菱形物附在組成端表示。每個表示部分的類與表示整體的類之間有單獨的關(guān)聯(lián),但是為了方便起見,連線結(jié)合在一起,現(xiàn)在整組關(guān)聯(lián)就像一棵樹。
關(guān)聯(lián)關(guān)系是通過類的成員變量 來實現(xiàn)的 。下面看一下UML類圖依賴關(guān)系和聚合的聯(lián)系。
3.1 聚合(Aggregation)
聚合是一種特殊的關(guān)聯(lián)。它描述了“has a”關(guān)系,表示整體對象擁有部分對象。
來源:(http://blog.sina.com.cn/s/blog_4c4d6e740100aixn.html) - UML類圖中的關(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ù)制,部分也必須一起被復(fù)制。
與關(guān)聯(lián)關(guān)系一樣,組合關(guān)系也是通過類的成員變量 來實現(xiàn)的。
![]()
4. 實現(xiàn)(Realization)
實現(xiàn)關(guān)系指定兩個實體之間的一個合約。換言之,一個實體定義一個 合約 ,而另一個實體保證履行該 合約 。

【編輯推薦】


















