UML類圖依賴關系和關聯關系的區別
本文和大家重點討論一下UML類圖依賴關系和關聯關系的區別,UML類圖依賴關系依賴表示兩個或多個模型元素之間語義上的關系,而關聯是一種結構化的關系,指一種對象和另一種對象有聯系。
1.依賴關系(Dependencies)
UML類圖依賴關系是一種使用關系,特定事物的改變有可能會影響到使用該事物的事物,反之不成立。在你想顯示一個事物使用另一個事物時使用,兩個元素之間的一種關系,其中一個元素(服務者)的變化將影響另一個元素(客戶),或向它(客戶)提供所需信息。它是一種組成不同模型關系的簡便方法。依賴表示兩個或多個模型元素之間語義上的關系。它只將模型元素本身連接起來而不需要用一組實例來表達它的意思。它表示了這樣一種情形,提供者的某些變化會要求或指示依賴關系中客戶的變化。
根據這個定義,關聯和泛化都是依賴關系,但是它們有更特別的語義,故它們有自己的名字和詳細的語義。我們通常用依賴這個詞來指其他的關系。依賴用一個從客戶指向提供者的虛箭頭表示,用一個構造型的關鍵字來區分它的種類,通常情況下,UML類圖依賴關系體現在某個類的方法使用另一個類作為參數。
2.關聯關系(Association)
關聯是一種結構化的關系,指一種對象和另一種對象有聯系。給定有關聯的兩個類,可以從一個類的對象得到另一個類的對象。關聯有兩元關系和多元關系。兩元關系是指一種一對一的關系,多元關系是一對多或多對一的關系。一般用實線連接有關聯的同一個類或不同的兩個類。當你想要表示結構化關系時使用關聯,如果幾個類元的實例之間有聯系,那么這幾個類元之間的語義關系即關聯。關聯描述了系統中對象或實例之間的離散連接。
關聯將一個含有兩個或多個有序表的類元,在允許復制的情況下連接起來。最普通的關聯是一對類元之間的二元關聯。關聯的實例之一是鏈。每個鏈由一組對象(一個有序列表)構成,每個對象來自于相應的類。二元鏈包含一對對象。關聯帶有系統中各個對象之間關系的信息。當系統執行時,對象之間的連接被建立和銷毀。關聯關系是整個系統中使用的“膠粘劑”,如果沒有它,那么只剩下不能一起工作的孤立的類。在關聯中如果同一個類出現不止一次,那么一個單獨的對象就可以與自己關聯。如果同一個類在一個關聯中出現兩次,那么兩個實例就不必是同一個對象,通常的情況都如此。二元關聯用一條連接兩個類的連線表示。
聚集表示部分與整體關系的關聯,它用端點帶有空菱形的線段表示,空菱形與聚集類相連接。組成是更強形式的關聯,整體有管理部分的特有的職責,它用一個實菱形物附在組成端表示。每個表示部分的類與表示整體的類之間有單獨的關聯,但是為了方便起見,連線結合在一起,現在整組關聯就像一棵樹。
【編輯推薦】