UML類圖依賴關(guān)系和其他關(guān)系區(qū)別
本節(jié)和大家學(xué)習(xí)一下UML類圖依賴關(guān)系和其他關(guān)系區(qū)別,UML類圖中的關(guān)系分為四種,這里向大家一一介紹,相信通過本節(jié)的介紹你對(duì)UML類圖依賴關(guān)系以及其他幾種關(guān)系有明確的認(rèn)識(shí)。
UML類圖依賴關(guān)系和其他關(guān)系區(qū)別
UML類圖中的關(guān)系分為四種:UML類圖依賴關(guān)系、泛化關(guān)系、關(guān)聯(lián)關(guān)系、實(shí)現(xiàn)關(guān)系;關(guān)聯(lián)關(guān)系又可以細(xì)化為聚合和組合。
1. 泛化(Generalization)
泛化是父類和子類之間的關(guān)系,子類繼承父類的所有結(jié)構(gòu)和行為。在子類中可以增加新的結(jié)構(gòu)和行為,也可以覆寫父類的行為。
2. 依賴(Dependencies)
UML類圖依賴關(guān)系是一種使用關(guān)系,特定事物的改變有可能會(huì)影響到使用該事物的事物,反之不成立。在你想顯示一個(gè)事物使用另一個(gè)事物時(shí)使用,兩個(gè)元素之間的一種關(guān)系,其中一個(gè)元素(服務(wù)者)的變化將影響另一個(gè)元素(客戶),或向它(客戶)提供所需信息。它是一種組成不同模型關(guān)系的簡便方法。依賴表示兩個(gè)或多個(gè)模型元素之間語義上的關(guān)系。它只將模型元素本身連接起來而不需要用一組實(shí)例來表達(dá)它的意思。它表示了這樣一種情形,提供者的某些變化會(huì)要求或指示依賴關(guān)系中客戶的變化。
根據(jù)這個(gè)定義,關(guān)聯(lián)和泛化都是依賴關(guān)系,但是它們有更特別的語義,故它們有自己的名字和詳細(xì)的語義。我們通常用依賴這個(gè)詞來指其他的關(guān)系。依賴用一個(gè)從客戶指向提供者的虛箭頭表示,用一個(gè)構(gòu)造型的關(guān)鍵字來區(qū)分它的種類,通常情況下,UML類圖依賴關(guān)系體現(xiàn)在某個(gè)類的方法使用另一個(gè)類作為參數(shù) 。
3. 關(guān)聯(lián)(Association)
關(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),如果幾個(gè)類元的實(shí)例之間有聯(lián)系,那么這幾個(gè)類元之間的語義關(guān)系即關(guān)聯(lián)。關(guān)聯(lián)描述了系統(tǒng)中對(duì)象或?qū)嵗g的離散連接。
關(guān)聯(lián)將一個(gè)含有兩個(gè)或多個(gè)有序表的類元,在允許復(fù)制的情況下連接起來。最普通的關(guān)聯(lián)是一對(duì)類元之間的二元關(guān)聯(lián)。關(guān)聯(lián)的實(shí)例之一是鏈。每個(gè)鏈由一組對(duì)象(一個(gè)有序列表)構(gòu)成,每個(gè)對(duì)象來自于相應(yīng)的類。二元鏈包含一對(duì)對(duì)象。關(guān)聯(lián)帶有系統(tǒng)中各個(gè)對(duì)象之間關(guān)系的信息。當(dāng)系統(tǒng)執(zhí)行時(shí),對(duì)象之間的連接被建立和銷毀。關(guān)聯(lián)關(guān)系是整個(gè)系統(tǒng)中使用的“膠粘劑”,如果沒有它,那么只剩下不能一起工作的孤立的類。在關(guān)聯(lián)中如果同一個(gè)類出現(xiàn)不止一次,那么一個(gè)單獨(dú)的對(duì)象就可以與自己關(guān)聯(lián)。如果同一個(gè)類在一個(gè)關(guān)聯(lián)中出現(xiàn)兩次,那么兩個(gè)實(shí)例就不必是同一個(gè)對(duì)象,通常的情況都如此。二元關(guān)聯(lián)用一條連接兩個(gè)類的連線表示。
聚集表示部分與整體關(guān)系的關(guān)聯(lián),它用端點(diǎn)帶有空菱形的線段表示,空菱形與聚集類相連接。組成是更強(qiáng)形式的關(guān)聯(lián),整體有管理部分的特有的職責(zé),它用一個(gè)實(shí)菱形物附在組成端表示。每個(gè)表示部分的類與表示整體的類之間有單獨(dú)的關(guān)聯(lián),但是為了方便起見,連線結(jié)合在一起,現(xiàn)在整組關(guān)聯(lián)就像一棵樹。
關(guān)聯(lián)關(guān)系是通過類的成員變量 來實(shí)現(xiàn)的 。下面看一下UML類圖依賴關(guān)系和聚合的聯(lián)系。
3.1 聚合(Aggregation)
聚合是一種特殊的關(guān)聯(lián)。它描述了“has a”關(guān)系,表示整體對(duì)象擁有部分對(duì)象。
來源:(http://blog.sina.com.cn/s/blog_4c4d6e740100aixn.html) - UML類圖中的關(guān)系_匆匆路人_新浪博客
關(guān)聯(lián)關(guān)系和聚合關(guān)系來語法上是沒辦法區(qū)分的,從語義 上才能更好的區(qū)分兩者的區(qū)別。聚合是較強(qiáng)的關(guān)聯(lián)關(guān)系,強(qiáng)調(diào)的是整體與部分 之間的關(guān)系。
與關(guān)聯(lián)關(guān)系一樣,聚合關(guān)系也是通過類的成員變量 來實(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)系也是通過類的成員變量 來實(shí)現(xiàn)的。
4. 實(shí)現(xiàn)(Realization)
實(shí)現(xiàn)關(guān)系指定兩個(gè)實(shí)體之間的一個(gè)合約。換言之,一個(gè)實(shí)體定義一個(gè) 合約 ,而另一個(gè)實(shí)體保證履行該 合約 。
【編輯推薦】