學(xué)習(xí)筆記 全面認(rèn)識UML類圖組成
本節(jié)和大家一起學(xué)習(xí)一下UML類圖的相關(guān)知識,UML類圖(Classdiagram)是最常用的UML圖,顯示出類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系;它用于描述系統(tǒng)的結(jié)構(gòu)化設(shè)計(jì)。
UML類圖
UML類圖(Classdiagram)是顯示了模型的靜態(tài)結(jié)構(gòu),特別是模型中存在的類、類的內(nèi)部結(jié)構(gòu)以及它們與其他類的關(guān)系等。類圖不顯示暫時(shí)性信息。
類圖(Classdiagram)由許多(靜態(tài))說明性的模型元素(例如類、包和它們之間的關(guān)系,這些元素和它們的內(nèi)容互相連接)組成。類圖可以組織在(并且屬于)包中,僅顯示特定包中的相關(guān)內(nèi)容。
類圖(Classdiagram)是最常用的UML圖,顯示出類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系;它用于描述系統(tǒng)的結(jié)構(gòu)化設(shè)計(jì)。
類圖(Classdiagram)最基本的元素是類或者接口。
UML類圖通常包含如下的內(nèi)容:
類
接口
協(xié)作
關(guān)系
同其他的圖一樣,類圖也可以包含注解和限制。
類圖中也可以包含包和子系統(tǒng),這兩者用來將元素分組。有時(shí)后你也可以將類的實(shí)例放到類圖中。
注:組件圖和分布圖和類圖類似,雖然他們不包含類而是分別包含組件和節(jié)點(diǎn)。
你通常通過下面三種方式使用UML類圖:
1,為系統(tǒng)詞匯建模型
為系統(tǒng)的詞匯建模實(shí)際上是從詞匯表中發(fā)現(xiàn)類,發(fā)現(xiàn)它的責(zé)任。
2,模型化簡單的協(xié)作
協(xié)作是指一些類、接口和其他的元素一起工作提供一些合作的行為,這些行為不是簡單地將元素加能得到的。例如:當(dāng)你為一個(gè)分布式的系統(tǒng)中的事務(wù)處理過程建模型時(shí),你不可能只通過一個(gè)類來明白事務(wù)是怎樣進(jìn)行的,事實(shí)上這個(gè)過程的執(zhí)行涉及到一系列的類的協(xié)同工作。使用類圖來可視化這些類和他們的關(guān)系。
3,模型化一個(gè)邏輯數(shù)據(jù)庫模式
想象模式是概念上設(shè)計(jì)數(shù)據(jù)庫的藍(lán)圖。在很多領(lǐng)域,你將想保存持久性數(shù)據(jù)到關(guān)系數(shù)據(jù)庫活面向?qū)ο蟮臄?shù)據(jù)庫。你可以用類圖為這些數(shù)據(jù)庫模式建立模型。
1.類(Class)
UML類圖中類一般包含3個(gè)組成部分。第一個(gè)是類名;第二個(gè)是屬性(attributes);第三個(gè)是該類提供的方法(類的性質(zhì)可以放在第四部分;如果類中含有內(nèi)部類,則會出現(xiàn)第五個(gè)組成部分)。類名部分是不能省略的,其他組成部分可以省略。
類名書寫規(guī)范:正體字說明類是可被實(shí)例化的,斜體字說明類為抽象類。
屬性和方法書寫規(guī)范:修飾符[描述信息]屬性、方法名稱[參數(shù)][:返回類型|類型]
屬性和方法之前可附加的可見性修飾符:
加號(+)表示public;減號(-)表示private;#號表示protected;省略這些修飾符表示具有package(包)級別的可見性。
如果屬性或方法具有下劃線,則說明它是靜態(tài)的。
描述信息使用<<開頭和使用>>結(jié)尾。
類的性質(zhì)是由一個(gè)屬性、一個(gè)賦值方法和一個(gè)取值方法組成。書寫方式和方法類似。
2.包(Package)
UML類圖中包是一種常規(guī)用途的組合機(jī)制。UML中的一個(gè)包直接對應(yīng)于Java中的一個(gè)包。在Java中,一個(gè)包可能含有其他包、類或者同時(shí)含有這兩者。進(jìn)行建模時(shí),通常使用邏輯性的包,用于對模型進(jìn)行組織;使用物理性的包,用于轉(zhuǎn)換成系統(tǒng)中的Java包。每個(gè)包的名稱對這個(gè)包進(jìn)行了惟一性的標(biāo)識。
3.接口(Interface)
接口是一系列操作的集合,它指定了一個(gè)類所提供的服務(wù)。它直接對應(yīng)于Java中的一個(gè)接口類型。接口的表示有大概兩種方式。具體畫法見下例:
4.關(guān)系
UML類圖中常見的關(guān)系有:一般化關(guān)系(Generalization),關(guān)聯(lián)關(guān)系(Association),聚合關(guān)系(Aggregation),合成關(guān)系(Composition),依賴關(guān)系(Dependency)。
其中,聚合關(guān)系(Aggregation),合成關(guān)系(Composition)屬于關(guān)聯(lián)關(guān)系(Association)。
一般關(guān)系表現(xiàn)為繼承或?qū)崿F(xiàn)關(guān)系(isa),關(guān)聯(lián)關(guān)系表現(xiàn)為變量(hasa),依賴關(guān)系表現(xiàn)為函數(shù)中的參數(shù)(usea)。
一般化關(guān)系:表示為類與類之間的繼承關(guān)系,接口與接口之間的繼承,類對接口的實(shí)現(xiàn)關(guān)系。
表示方法:用一個(gè)空心箭頭+實(shí)線,箭頭指向父類。或空心箭頭+虛線,如果父類是接口。
關(guān)聯(lián)關(guān)系:類與類之間的聯(lián)接,它使一個(gè)類知道另一個(gè)類的屬性和方法。
表示方法:用實(shí)線+箭頭,箭頭指向被使用的類。
聚合關(guān)系:是關(guān)聯(lián)關(guān)系的一種,是強(qiáng)的關(guān)聯(lián)關(guān)系。聚合關(guān)系是整體和個(gè)體的關(guān)系。關(guān)聯(lián)關(guān)系的兩個(gè)類處于同一層次上,啊聚合關(guān)系兩個(gè)類處于不同的層次,一個(gè)是整體,一個(gè)是部分。
表示方法:空心菱形+實(shí)線+箭頭,箭頭指向部分。
合成關(guān)系:是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系強(qiáng)的關(guān)系。它要求普通的聚合關(guān)系中代表整體的對象負(fù)責(zé)代表部分的對象的生命周期,合成關(guān)系不能共享。
表示方法:實(shí)心菱形+實(shí)線+箭頭,
依賴關(guān)系:是類與類之間的連接,表示一個(gè)類依賴于另一個(gè)類的定義。例如如果A依賴于B,則B體現(xiàn)為局部變量,方法的參數(shù)、或靜態(tài)方法的調(diào)用。
表示方法:虛線+箭頭
【編輯推薦】