1. 程式人生 > >UML中關聯關係和依賴關係的區別

UML中關聯關係和依賴關係的區別

UML中關聯(association)關係和依賴關係比較難以讓人理解。今天查了一下《UML參考手冊》。歸納如下

關聯(association)

       如果幾個類元的例項之間有聯絡,那麼這幾個類元之間的語義關係即關聯。關聯描述了系統中物件或例項之間的離散連線。關聯將一個含有兩個或多個有序表的類元,在允許複製的情況下連線起來。最普通的關聯是一對類元之間的二元關聯。關聯的例項之一是鏈。每個鏈由一組物件(一個有序列表)構成,每個物件來自於相應的類。二元鏈包含一對物件。

關聯帶有系統中各個物件之間關係的資訊。當系統執行時,物件之間的連線被建立和銷燬。關聯關係是整個系統中使用的“膠粘劑”,如果沒有它,那麼只剩下不能一起工作的孤立的類。

在關聯中如果同一個類出現不止一次,那麼一個單獨的物件就可以與自己關聯。如果同一個類在一個關聯中出現兩次,那麼兩個例項就不必是同一個物件,通常的情況都如此。

二元關聯用一條連線兩個類的連線表示。

聚集表示部分與整體關係的關聯,它用端點帶有空菱形的線段表示,空菱形與聚集類相連線。組成是更強形式的關聯,整體有管理部分的特有的職責,它用一個實菱形物附在組成端表示。每個表示部分的類與表示整體的類之間有單獨的關聯,但是為了方便起見,連線結合在一起,現在整組關聯就像一棵樹。

依賴(dependency)

兩個元素之間的一種關係,其中一個元素(服務者)的變化將影響另一個元素(客戶),或向它(客戶) 提供所需資訊。它是一種組成不同模型關係的簡便方法。

依賴表示兩個或多個模型元素之間語義上的關係。它只將模型元素本身連線起來而不需要用一組例項來表達它的意思。它表示了這樣一種情形,提供者的某些變化會要求或指示依賴關係中客戶的變化。

根據這個定義,關聯和泛化都是依賴關係,但是它們有更特別的語義,故它們有自己的名字和詳細的語義。我們通常用依賴這個詞來指其他的關係。

依賴用一個從客戶指向提供者的虛箭頭表示,用一個構造型的關鍵字來區分它的種類

相關推薦

UML關聯關係依賴關係區別

UML中關聯(association)關係和依賴關係比較難以讓人理解。今天查了一下《UML參考手冊》。歸納如下 關聯(association)        如果幾個類元的例項之間有聯絡,那麼這幾個類元之間的語義關係即關聯。關聯描述了系統中物件或例項之間的離散連線。關聯將一個

關聯關係依賴關係

1、  關聯關係 類A關聯類B的意思是,如果例項化一個A類的物件,同時,會有一個B類的物件被例項化。簡言之,B作為A的屬性存在。如下: class A{          private B b;   }   class B{   }   2、  依賴關係

UML活動圖流程圖的區別

活動圖定義:   活動圖是UML用於對系統的動態行為建模的另一種常用工具,它描述活動的順序,展現從一個活動到另一個活動的控制流。活動圖在本質上是一種流程圖。   它是UML中用於對系統動態活動建模的圖形,反映系統中一個活動到另一個活動的流程,常常用於描述業務過程和並行

UML類之間的主要關係:關聯,依賴,泛化,聚合,組合,實現

UML中,類與類之間的關係分為:關聯,依賴,泛化,聚合,組合,實現 關聯: 體現的是類與類的例項之間的關係,而不是類本身的屬性.

SpringBoot 的 slf4j 日誌依賴關係

SpringBoot底層使用的是slf4j+logback來進行日誌記錄 把其他common-logging、log4j、java.util.logging轉換為slf4j 底層依賴關係 關係如何轉化 底層通過偷樑換柱的方法,用j

eclipse使用ant + ivy 配置專案jar包依賴關係

首先,ant是版本區分的,不同版本適配不同jdk版本。 以我本機為例,本機ant版本為1.7.0對應ivy版本是2.2.0,jdk使用的1.5 將ant檔案安裝或解壓後,配置ant的環境變數: ANT_HOME:指向ant的檔案路徑。 path:追加%ANT_HOME%\bin; 執行cmd,輸

UML類之間的六大關係

理解六大關係中在程式碼中的體現,就可以輕鬆的閱讀設計模式 一、泛化關係(Generalization)        說明:這種關係就是面嚮物件語言中的繼承關係,邏輯上可以用"is a"表示。       &nbs

vue與react關係Angular的區別

一、為什麼學習vue.js vue.js兼具angular.js和react的優點,並且剔除了他們的缺點 官網:http://cn.vuejs.org/ 手冊:http://cn.vuejs.org/v2/api/ 二、vue.js是什麼 Vue是一個"MVVM

談談類之間的關聯關係依賴關係

原文:http://www.cnblogs.com/iyangyuan/archive/2013/06/16/3138463.html   對於很多剛剛接觸UML的童鞋,可能會對類之間的關聯與依賴關係不太理解,今天小菜就淺薄的講一下。        這塊的確是有點亂

小解UML關聯、聚合、依賴(簡易區分)

說明:本帖目的是使讀者快速簡易理解三者關係,並非詳解概念,所以有難免疏漏之處(部分內容來源網路)。 一、相關概念 1.關聯:關聯關係(Association):類之間的聯絡,如客戶和訂單,每個訂單對應特定的客戶,每個客戶對應一些特定的訂單,再如籃球隊員與球隊之間的關聯(下圖

Maven打包命令包括繼承依賴關係的打包命令

上級 cis-parent 下級 itw-api   itw-app  itw-domain api app domain 都繼承於cis-parent,在app裡dependency了api,domain裡dependency了api api 打包方式為jar,app和d

SQLtruncate tabledelete的區別

約束 重置 mar 功能 語句 str foreign ack span TRUNCATE TABLE 在功能上與不帶 Where 子句的 Delete 語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 Delete 速度快,且使用的系統和事務日誌資源

jsstyle,currentStylegetComputedStyle的區別

偽類 pro null prop obj 解決 strong 語法 nts js中style,currentStyle和getComputedStyle的區別 MarysMa 在js中用xx.style.marginTop是無法獲取寫在css或<sytle>標簽

JavaScript:表達式語句的區別

運算 false 第一個 ron 為我 error 直接 -- 組成 1.語句和表達式 JavaScript中的表達式和語句是有區別的.一個表達式會產生一個值,它可以放在任何需要一個值的地方,比如,作為一個函數調用的參數.下面的每行代碼都是一個表達式: myvar3

JS的call()apply()方法區別

prototype 理解 ace attach bdb .html closed mil solid 如 果沒接觸過動態語言,以編譯型語言的思維方式去理解javaScript將會有種神奇而怪異的感覺,因為意識上往往不可能的事偏偏就發生了,甚至覺得不可 理喻.如果在學Java

linuxfork, sourceexec的區別

after 如果 direct roo 子進程 獨立 程序 也會 exp 轉:linux中fork, source和exec的區別 shell的命令可以分為內部命令和外部命令. 內部命令是由特殊的文件格式.def實現的,如cd,ls等.而外部命令是通過系統調用或獨立程序

C#的isas操作符區別小結

devel 獲取 d3d 數據 bottom 技術 datagrid idv center 1. is 是驗證操作對象是不是自己希望的 運算公式:對象 is 類型 返回true:對象是指定類型 返回false:對象不是指定類型 2. as 是將對象轉換成指定類型

Java &&&的區別

log 不能 if判斷 ava nbsp 第一個 als post body &&時判斷第一個條件為false,後面的條件就沒有進行判斷。 &時要對所有的條件進行判斷,所以會對後面的條件進行判斷。 例如if((1!=1)&&(1/0!

linux的buffercache的區別

做成 內存 緩沖 交換 簡單 text 操作 進程 linux系統中 ***今天我們再來簡單討論下linux系統中關於Buffer和Cache的區別,buffer與cache操作的對象就不一樣、``` 1.buffer(緩沖區) 是為了提高內存的硬盤(或其他i/o設備)

Python函數方法的區別

ini import ins function cti body itl 一個 object 1、函數要手動傳self,方法不用傳self 2、如果是一個函數,用類名去調用,如果是一個方法,用對象去調用 舉例說明: class Foo(object): d