詳解UML中的6大關係(關聯、依賴、聚合、組合、泛化、實現)

 

 

詳解UML中的6大關係(關聯、依賴、聚合、組合、泛化、實現)

UML中的6大關係相關英文及音標:html

依賴關係       數組

dependency -------->函數

關聯關係url

association ______>spa

聚合關係指針

aggregation ______◇htm

組合關係對象

Composition______◆blog

 實現繼承

realization ------△

 泛化

generalization △----------

 

UML中的6大關係簡單解釋:

  1. 關聯:鏈接模型元素及連接實例,用一條實線來表示;
  2. 依賴:表示一個元素以某種方式依賴於另外一個元素,用一條虛線加箭頭來表示;
  3. 聚合:表示總體與部分的關係,用一條實線加空心菱形來表示;
  4. 組成:表示總體與部分的有一關係,用一條實線加實心菱形來表示;
  5. 泛化(繼承):表示通常與特殊的關係,用一條實線加空心箭頭來表示;
  6. 實現:表示類與接口的關係,用一條虛線加空心箭頭來表示;

注意:泛化關係和實現關係又統稱爲通常關係;
總之:通常關係表現爲繼承或實現(is a),關聯關係、聚合關係、合成/組合關係表現爲成員變量(has a),依賴關係表現爲函數中的參數(use a);

 

UML中的6大關係詳細說明:

 

1、關聯關係:
  含義:類與類之間的連結,關聯關係使一個類知道另一個類的屬性和方法;一般含有「知道」,「瞭解」的含義
體現:在C#中,關聯關係是經過成員變量來實現的;
方向:雙向或單向;
圖示:實線 + 箭頭;箭頭指向被關聯的類;
2、依賴關係:
  含義:是類與類之間的鏈接,表示一個類依賴於另一個類的定義;依賴關係僅僅描述了類與類之間的一種使用與被使用的關係;
體現:在C#中體現爲局部變量、方法/函數的參數或者是對靜態方法的調用;
方向:單向;
圖示:虛線 + 箭頭;
舉例:人依賴於水和空氣;汽車依賴汽油 

3、聚合關係:
  含義:是關聯關係的一種,是一種強關聯關係;聚合關係是總體和個體/部分之間的關係;關聯關係的兩個類處於同一個層次上,而聚合關係的兩個類處於不一樣的層次上,一個是總體,一個是個體/部分;在聚合關係中,表明個體/部分的對象有可能會被多個表明總體的對象所共享;
體現:C++中,聚合關係經過將被聚合者的(數組)指針做爲內部成員來實現的;
方向:單向;
圖示:空心菱形 + 實線 + 箭頭;箭頭指向被聚合的類,也就是說,箭頭指向個體/部分;
舉例:鴨羣與鴨子具備聚合關係;汽車由引擎、輪胎以及其它零件組成,由於汽車壞掉了,沒有壞掉的引擎,輪胎和其餘零件還能夠繼續使用。

4、組合關係:
  含義:它也是關聯關係的一種,但它是比聚合關係更強的關係.組合關係要求聚合關係中表明總體的對象要負責表明個體/部分的對象的整個生命週期;組合關係不能共享;在組合關係中,若是表明總體的對象被銷燬或破壞,那麼表明個體/部分的對象也必定會被銷燬或破壞,而聚在合關係中,表明個體/部分的對象則有可能被多個表明總體的對象所共享,而不必定會隨着某個表明總體的對象被銷燬或破壞而被銷燬或破壞;
體現:在C#中,組合關係是經過成員變量來實現的;
方向:單向;
圖示:實心菱形 + 實線 + 箭頭;箭頭指向表明個體/部分的對象,也就是被組合的類的對象;
舉例:一我的由頭、四肢、等各類器官組成,由於人與這些器官具備相同的生命週期,人死了,這些器官也掛了;

5、泛化關係:
  含義:它表示一個更泛化的元素和一個更具體的元素之間的關係;也就是一般所說的類的繼承關係;
體現:在C#中,泛化關係經過類的繼承來實現的;
方向:單向;子類繼承父類;
圖示:空心箭頭 + 實線;箭頭指向父類;
舉例:動物下面能夠分爲哺乳動物,脊椎動物,爬行動物等

六、實現關係:  含義:它指定了兩個實體之間的一份合同;即:一個實體定義一份合同,另一個實體則保證履行該合同; 體現:在C#中,實現關係經過類實現接口來實現的,即:一個類實現某個接口; 方向:單向;子類實現接口; 圖示:空心箭頭 + 虛線;箭頭指接口向接口; 舉例:唐老鴨(對象)會說話(接口),由於通常鴨子不會說話,因此不會將說話這個方法給通常的鴨子帶上;超人(對象)會飛(接口)

相關文章
相關標籤/搜索