1. 程式人生 > >小解UML中關聯、聚合、依賴(簡易區分)

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

說明:本帖目的是使讀者快速簡易理解三者關係,並非詳解概念,所以有難免疏漏之處(部分內容來源網路)。

一、相關概念

1.關聯:關聯關係(Association:類之間的聯絡,如客戶和訂單,每個訂單對應特定的客戶,每個客戶對應一些特定的訂單,再如籃球隊員與球隊之間的關聯(下圖所示)。


    1)  雙向關聯: 預設情況下,關聯是雙向的。      
public class Customer  
{  
    private Product[] products;  
    ……  
}  
public class Product  
{  
    private Customer customer;  
    ……  
}  
    2 ) 單向關聯:類的關聯關係也可以是單向的,單向關聯用帶箭頭的實線表示.     
public class Customer  
{  
    private Address address;  
    ……  
}  
  
public class Address  
{  
    ……  
}  
    3) 自關聯: 在系統中可能會存在一些類的屬性物件型別為該類本身,這種特殊的關聯關係稱為自關聯。     
public class Node  
{  
    private Node subNode;  
    ……  
}   
2.聚合:表示的是整體和部分的關係,
整體與部分可以分開. •  聚合關係(Aggregation) 表示一個整體與部分的關係。通常在定義一個整體類後,再去分析這個整體類的組成結構,從而找出一些成員類,該整體類和成員類之間就形成了聚合   關係。 •  在聚合關係中,成員類是整體類的一部分,即成員物件是整體物件的一部分,但是成員物件可以脫離整體物件獨立存在。UML中,聚合關係用帶空心菱形的直線表示。 
public class Car  
{  
    private Engine engine;  
    public Car(Engine engine)  
   {  
        this.engine = engine;  
    }  
      
    public void setEngine(Engine engine)  
    {  
        this.engine = engine;  
    }  
    ……  
}  
public class Engine  
{  
    ……  
}  

3.依賴:假設A類的變化引起了B類的變化,則說名B類依賴於A類。

    依賴關係有如下三種情況:

    1)A類是B類中的(某中方法的)區域性變數;

    2)A類是B類方法當中的一個引數;

    3)A類向B類傳送訊息,從而影響B類發生變化;


二、區別

1.關聯和聚合的區別

    這個主要體現在整體部分觀念上。能明確總結出一個類是另一個類的一部分,就是聚合。

2.關聯和依賴的區別

   關聯一般是一個類的物件是另一個類的屬性。另外依賴一般僅有有上述三個特點。

相關推薦

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

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

C#繼承抽象類介面的知識簡易題目

abstract class Animal { private string name; public string Name { get {

UML類圖關系泛化 繼承實現依賴關聯聚合組合-轉

定位 雙向 圖關系 bst 操作 att one 一般來說 eal 繼承、實現、依賴、關聯、聚合、組合的聯系與區別 分別介紹這幾種關系: 繼承 指的是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,並可以增加它自己的新功能的能力,繼承是類與類或者

UML類圖關係泛化 繼承實現依賴關聯聚合組合-轉

繼承、實現、依賴、關聯、聚合、組合的聯絡與區別 分別介紹這幾種關係: 繼承 指的是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力,繼承是類與類或者介面與介面之間最常見的關係;在Java中此類關係通過關鍵字extends明確標識,在設計

UML類圖關係之 繼承實現依賴關聯聚合組合

原文出自 https://www.cnblogs.com/jiqing9006/p/5915023.html 繼承 指的是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力,繼承是類與類或者介面與介面之間最常見的關係;在Java

用例關係包含擴充套件泛化 uml類關係依賴關聯聚合組合泛化

用例關係 用例圖使使用者 與開發人員交流的一種重要的方式,是對使用者需求的一種描述。開發人員從使用者的角度整體上理解系統的功能。 1)用例“註冊學生資訊”和“充值”與用例“使用者登陸”之間的關係就是包含關係。b和a本質不一樣,就是做b之前一定要做a,那a和b就是包含。

設計模式之UML類圖以及類間關係泛化 實現依賴關聯聚合組合

類圖用於描述系統中所包含的類以及它們之間的相互關係,幫助人們簡化對系統的理解,它是系統分析和設計階段的重要產物,也是系統編碼和測試的重要模型依據。接下來我們就來談談類圖的組成,在下一篇中我們將討論一下類圖之間的關係。 一、類圖的組成 1. 普通類 上圖

認識UML類關係——依賴關聯聚合組合泛化

在學習面向物件設計時,類關係涉及依賴、關聯、聚合、組合和泛化這五種關係,耦合度依次遞增。關於耦合度,可以簡單地理解為當一個類發生變更時,對其他類造成的影響程度,影響越小則耦合度越弱,影響越大耦合度越強。 下面根據個人理解,嘗試講解這五種類關係。 1.依賴(D

UML類圖關係繼承實現依賴關聯聚合組合

原文地址:http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html 類圖中包涵題目中的6中關係,用例圖中包涵泛化(繼承和實現的通稱),包含,擴張等 uml中關係很多,注意各個關係使用的是uml中的哪類圖即可,下面

UML類圖關係泛化 繼承實現依賴關聯聚合組合

繼承、實現、依賴、關聯、聚合、組合的聯絡與區別 分別介紹這幾種關係: 繼承 指的是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力,繼承是類與類或者介面與介面之間最常見的關係;在Java中此類關係通過關鍵字extends明確標識,在設計時一般沒有爭議性; 

Java 類的繼承實現依賴關聯聚合組合

繼承(又稱泛化) 指的是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力,繼承是類與類或者介面與介面之間 最常見的關係;在Java中此類關係通過關鍵字extends明確標識,在設計時一般沒有爭議性; 實現 指的是一

UML類圖關係泛化依賴關聯聚合組合

一、泛化關係 表示類與類之間的繼承關係,介面與介面之間的繼承關係,或類對介面的實現關係。一般化的關係是從子類指向父類的,與繼承或實現的方法相反。 二、關聯關係 表示類與類之間的聯接,它使一個類知道另一個類的屬性和方法。體現的是兩個類、或者類與介面之間語義級別的一種強依賴關係

幾種類間關係:繼承實現依賴關聯聚合組合及UML實現圖

轉自:http://www.cnblogs.com/yyyyy5101/archive/2011/03/11/1981078.html 繼承 指的是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力,繼承是類與類或者介面與介

StarUML類圖相關——關聯聚合組合泛化依賴實現

及其 jpg str 類的繼承 sed core tar 必須 物理 在閱讀設計模式相關的書籍,或者其他一些項目、相關博客等等,經常會遇到類圖,它對於一個類的信息,如變量、方法及其可見性,類與類(接口)之間的繼承關系、依賴關系、聚合關系、組合關系等,都可以比

java組合聚合關聯

 類間關係 在類圖中,除了需要描述單獨的類的名稱、屬性和操作外,我們還需要描述類之間的聯絡,因為沒有類是單獨存在的,它們通常需要和別的類協作,創造比單獨工作更大的語義。在UML類圖中,關係用類框之間的連線來表示,連線上和連線端頭處的不同修飾符表示不同的關係。類之間的關係有繼

面向物件之依賴關聯聚合組合

如果你確定兩件物件之間是is-a的關係,那麼此時你應該使用繼承;比如菱形、圓形和方形都是形狀的一種,那麼他們都應該從形狀類繼承而不是聚合。  如果你確定兩件物件之間是has-a的關係,那麼此時你應該使用聚合;比如電腦是由顯示器、CPU、硬碟等組成的,那麼你應該把顯示器、CP

泛化依賴關聯聚合組合

時間久了不用了,慢慢慢慢也就淡忘了,寫一篇部落格記錄下 借來一張《大話設計模式》圖: 類的關係一般分為泛化(繼承,實現),依賴,關聯,聚合,組合 繼承 指的是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力,繼承

關聯組合聚合依賴關係比較

     Association關聯 系表現為變數(has a )。類與類之間的聯接,它使一個類知道另一個類的屬性和方法。例如如果A依賴於B,則B體現為A的全域性變數。關聯關係有雙向關聯和單向關聯。雙向關聯:兩個類都知道另一個類的公共屬性和操作。單向關聯:只有一個類知道另外一個類的公共屬性和操作。大多數關聯

c++的繼承聚合關聯和組合

一、繼承、關聯和組合 繼承和組合是兩個完全不同的概念 繼承,表達的是“is-a”的關係,兩者之間是一種上下級的關係,比如,我們說“human is a animal“(人是動物的一種,換句話說,動物是人的上級),要表達這種關係,就可以使用繼承 1 2 3 4 calss animal

類和類之間的依賴關聯聚合組合關係

一、繼承關係     繼承指的是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力。在Java中繼承關係通過關鍵字extends明確標識,在設計時一般沒有爭議性。在UML類圖設計中,繼承用一條帶空心三角箭頭的實線表示,從子類指向父類,或者子介面指向父介面。