UML類圖中的關系和表示方法


類圖是用來描述程序中的類以及它們之間的關系的,使用類圖可以幫助我們簡化對系統的理解。在UML類圖中比較常見的關系有六種,它們分別是:依賴、關聯、聚合、組合、泛化、實現,這六種關系中類之間的緊密程度是依次增強的:依賴 < 關聯 < 聚合 < 組合 < 泛化 = 實現。

下面分別介紹一下在UML類圖中類和這六種關系的表示方式。

        【注:類圖是用VS2013畫的】

類是對具有相似結構和行為的一類對象的描述,類的命名要盡量應用領域中的術語,應該明確、無歧義,以利於相互之間的理解和交流。在UML類圖中類由一個划分成三層的矩形表示,第一層是類的名稱(抽象類一般用斜體表示),第二層是類的屬性,第三層是類的操作。類成員的可見性,用+表示public-表示private#表示protected

類的表示如下:


         ①依賴關系(Dependence

依賴是一種使用關系,即一個類需要借助另一個類實現某個功能。通常是A類的方法需要使用B類的對象作為參數。例如,在Teacher類中的Write()方法需要將Blackboard類的對象作為傳入參數,且Teacher類的Write()方法依賴blackboard對象的Display()方法,所以Teacher類依賴Blackboard類。

依賴關系用【箭頭+虛線】表示,箭頭指向所依賴的對象。


②關聯關系(Association

         關聯是一種結構化的關系,用來表示一個類的對象和另一個類的對象之間有聯系。通常在A類中將B類的對象作為成員變量,它使一個類知道另一個類的屬性和方法。例如在班級類Class中包含一個Student類型的班長monitor,他們之間可以表示為關聯關系。

         關聯關系用【箭頭+實線】表示,箭頭指向所關聯的對象。

         

         ③聚合關系(Aggregation

         聚合表示一種整體和局部的關系,在聚合關系中,成員對象是整體對象的一部分,但是成員對象又是可以獨立存在的,它們有各自獨立的生命周期,整體對象和成員對象之間是has a 的關系。例如,學生在分組討論問題時,學生(Student)是組(Team)的一部分,但是學生又是可以獨立存在。

         聚合關系用【空心菱形+實線箭頭】表示,箭頭指向組成整體的元素。

         

 

         ④組合關系(Composition

         組合也是一種表示整體和局部的關系,但是和聚合關系不同的是,在組合關系中,成員對象和整體對象具有統一的生命周期,一旦整體對象不存在,成員對象也將不在存在,成員對象和整體對象之間具有同生共死的關系,整體對象和成員對象之間是contains a 的關系。

例如,人(Person)和手(Hand)之間的關系。

         組合關系用【實心菱形+實線箭頭】表示,箭頭指向組成整體的元素。

         

         ⑤泛化關系(Generalization

         泛化關系也就是繼承關系,用於描述父類和子類之間的關系。子類和父類之間是is a 的關系。例如,老師(Teacher)和人(Person)之間的關系。

         泛化關系用【空心三角+實線表示】,三角指向父類。

         

 

         ⑥實現關系(implementation

         實現是類和接口之間的關系,接口定義了類所具有的能力,類通過實現接口來擁有某種能力。實現類和接口之間是has a 的關系。

         實現關系用【空心三角+虛線表示】,三角指向接口。


 

整體類圖如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM