1. 程式人生 > >淺析UML建模中的幾種關係

淺析UML建模中的幾種關係

       UML中主要包括三種構造塊:事務、關係和圖。除了那九種圖,最重要的就是他們之間的關係了。畫圖並不難,難的就是用合適的關係來將他們聯絡起來,太強了會增加耦合性,太弱了會不能滿足要求。所以選擇合適的關係來建立圖與圖之間的連線是十分重要的。下面以類圖為例對UML中的幾種關係做一個比較,也是為了更好的區分和使用。

       一、UML的四種基本關係

       1、關聯關係(Association):關聯是描述一組具有共同機構特徵、行為特徵、關聯和語義的連結。它是一種機構關係,指明一個事物的物件與另一個事物的物件間的關係。關聯關係包括三個反面:普通關聯、聚合關聯、組合關聯        (1)普通關聯:類與類之間的連結,關聯關係使一個類知道另外一個類的屬性和方法
        如下圖是公司類和人員類的關係,employer、employee分別表示Company和Person代表的角色,job為二者之間的關係。                (2)聚合關聯:是一種特殊的關聯關係,它表示整體與部分的關聯,描述了”has a“的關係。           聚合關係用帶空心菱形頭的實線來表示,如圖所示:                (3)組合關聯:組合關係是聚合關係中的一種特殊情況,是更強形式的聚合。組合中,成員物件的生命週期取決於聚合的生命週期。           組合關係用實心菱形頭的實線來表示,如圖所示:                  2、依賴關係(Dependency)
:依賴是一種使用關係,表示一個事物的物件可以使用另一個事物的物件中的屬性或者方法。
          依賴關係用帶箭頭的虛線來表示,如圖所示:              3、泛化關係(Generalization):是一種存在於一般元素和特殊元素之間,描述了”is a kind of“的關係。也是通常所說類的繼承。           泛化關係用一條從子類指向父類的空心三角箭頭表示:                 4、實現關係(Realization):實現是類元之間的語義關係,在該關係中一個類元描述了另一個類元保證實現的契約。           實現關係用空心箭頭的虛線表示,如圖所示:
                    也可以實現介面:            

       二、聚合和組合的區別

       聚合和組合都是關聯的一種,組合比聚合更加特殊,組合是一種更強形式的聚合。那麼他們之間有什麼區別呢?        聚合的例子:比如說汽車,汽車由引擎、輪胎以及其它零件組成,因為汽車壞掉了,沒有壞掉的引擎,輪胎和其他零件還可以繼續使用,這就是聚合。描述了整體和部分的關係,整體沒有了,而部分還存在。                再舉一個組合的例子:就拿人來說吧,人由四肢、身體、頭組成。可是如果人死了,不存在了,那麼他的器官也就不能用了。也就是說,組合成員是不能離開聚合而單獨存在的,如果代表整體的物件被銷燬或破壞,那麼代表個體/部分的物件也一定會被銷燬或破壞。如圖所示:          

       總結:以上這幾種關係就是UML建模中最常用的,在畫圖的過程中要不斷的應用,雖然這只是理論,要想真正的明白其中的含義還要去畫圖實踐才可以,看完了UML視訊,接下來就要以機房收費系統為基礎繪畫九種圖了。有什麼不足之處還請指出。