UML中的四大關係

前言:

        我們知道UML是一種通用的建模語言,建模能很好的幫助我們理解軟件的功能和需求,在UML中畫圖就是我們要學習的重點。想要很好的學習UML畫圖就必須要理解UML中的四大關係。下面我就結合以下這張圖來具體說說這四種關係。

圖1
具體:
一、關聯(Association)關係
        關聯是描述具有共同結構特徵、行爲特徵、關係和語義的鏈接。它是一種結構化的關係,它指明一個事物的對象與另一個事物的對象間的關係。在UML中關聯用一條實線表示(),此外關聯還可以有方向。見圖2
 
 
圖2
關聯關係中的兩個特例。
        1.聚合關係:聚合又稱爲聚集,它表示類與類之間的關係是整體與部分的關係。若該部分除了可以構成這個整體的一部分還可以是其他整體的一部分,那麼這種聚合就是共享聚合。聚合關係用一端帶有空心小菱形的直線表示,小菱形一端表示的模型元素是整體,另一端爲部分。見圖3

 
圖3
 
        2.組合關係:若該部分是與整體共存,即整體消失了部分也就不存在了,那麼這種聚合就是複合聚合,也就是組合關係。組合關係用一端帶有實心小菱形的直線表示,小菱形端同樣代表整體。見圖4
 
 
圖4
聚合與組合對比:
        相同點:都是部分與整體之間的關係。
        不同點:聚合表示的是若耦合關係,即部分脫離整體可以獨立存在。而組合則爲強耦合關係,整體消失了部分也就消失了。
 
二、依賴(Dependency )關係
        依賴表示的是兩個或多個模型元素之間語義上的關係。其中一個模型元素是獨立的,而另一個模型元素是不獨立的,這個不獨立的模型元素要依賴獨立的模型元素。換句話說,就是依賴和被依賴的關係,而當被依賴的模型元素改變時,必然會是依賴的模型元素髮生改變。見圖5
 
 
圖5
        在UML中定義了四種基本依賴類型,這裏簡單介紹一下它們的基本定義,如下:
        1、使用(Usage)依賴:使用依賴是非常直接的,它表示用戶使用提供者提供的服務以實現它的行爲。使用依賴是類中最常用的依賴。
        2、抽象(Abstraction)依賴:表示客戶與提供者之間的關係,依賴於在不同抽象層次上的事物。
        3、授權(Permission)依賴:表示一個事物訪問另一個事物的能力。提供者通過規定客戶的權限,可以控制和限制對其內容訪問的方法。
        4、綁定(Binding)依賴:是較高級的依賴類型,用於綁定模板以創建新的模型元素。
     
三、泛化(Generalization)關係
        泛化關係是一種存在與一般元素和特殊元素之間的分類關係。它描述的是“is a kind of”(是……的一種)關係。其中可以使用一般元素的地方可以用特殊元素的一個實例代替,但不能用一般代替特殊。泛化關係其實可以理解成是一種繼承,這種繼承只能使用在類型、用例和模型元素上,而不能是對象繼承對象。泛化關係用一條從子類指向父類的空心三角箭頭表示。見圖6
 
圖6
       泛化可以分爲普通泛化和受限泛化,普通泛化與受限泛化的區別就在於有無約束條件。具體如下:
       1.普通泛化:沒有給泛化添加約束。在UML中用一條帶有空心箭頭的實線來表示。
       2.受限泛化:給泛化關係附加約束條件,說明該泛化關係的使用方法或擴充方法。預定義的約束有4種,多重、不相交、完全和不完全。這些都是語義約束。
注:繼承繼承是指一個對象直接使用另一對象的屬性和方法。即子類繼承父類的屬性和方法,子類還可以有自己的屬性和方法。
四、實現(Realization)關係
        實現時規格說明和期實現之間的關係,它將一種模型元素與另一種模型元素連接起來。例如類和接口,其中接口只是行爲的說明而不是結構或作實現。真正的實現由前一個模型元素來完成。通常會有實現的是在接口和實現它們的類或構件之間和在用例和實現它們的協作之間。在UML中,實現關係一般用一條帶有空心箭頭的虛線來表示。見圖7
 
 
圖7
       對比泛化和實現:
       泛化是類與類之間,而實現是類與接口之間。
 

總結:
      剛開始接觸這四種關係的時候,覺得有點難理解,但靜下心來好好看看就會清楚的多。雖然現在自己對這四種關係的理解還不是很好,還存在很多問題,但已經不像之前那樣雲裏霧裏了。對自己來說這就是進步了,希望自己能夠再接再厲吧!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章