全面認識UML類圖關(guān)系
本節(jié)重點向大家介紹一下UML類圖關(guān)系,開發(fā)Java應(yīng)用程序時,開發(fā)者要想有效地利用統(tǒng)一建模語言(UML),必須全面理解UML元素和UML類圖關(guān)系以及這些元素和關(guān)系如何映射到Java。
全面認識UML類圖關(guān)系
類圖是最常用的UML圖,它用于描述系統(tǒng)的結(jié)構(gòu)化設(shè)計。其中包括類關(guān)系以及與每個類關(guān)聯(lián)的屬性及行為。類圖能出色地表示繼承與合成關(guān)系。為了將類圖作為一種高效的溝通工具使用,開發(fā)者必須理解如何將類圖上出現(xiàn)的元素轉(zhuǎn)換到Java中。下面來進一步探索這一轉(zhuǎn)換過程。
UML類圖關(guān)系
后面的例子將針對某個具體目的來獨立地展示各種關(guān)系。雖然語法無誤,但這些例子可進一步精煉,在它們的有效范圍內(nèi)包括更多的語義。
依賴(Dependency)
實體之間一個“使用”關(guān)系暗示一個實體的規(guī)范發(fā)生變化后,可能影響依賴于它的其他實例(圖D)。更具體地說,它可轉(zhuǎn)換為對不在實例作用域內(nèi)的一個類或?qū)ο蟮娜魏晤愋偷囊?。其中包括一個局部變量,對通過方法調(diào)用而獲得的一個對象的引用(如下例所示),或者對一個類的靜態(tài)方法的引用(同時不存在那個類的一個實例)。也可利用“依賴”來表示包和包之間的關(guān)系。由于包中含有類,所以你可根據(jù)那些包中的各個類之間的關(guān)系,表示出包和包的關(guān)系。
圖D
關(guān)聯(lián)(Association)
UML類圖關(guān)系中實體之間的一個結(jié)構(gòu)化關(guān)系表明對象是相互連接的。箭頭是可選的,它用于指定導(dǎo)航能力。如果沒有箭頭,暗示是一種雙向的導(dǎo)航能力。在Java中,關(guān)聯(lián)(圖E)轉(zhuǎn)換為一個實例作用域的變量,就像圖E的“Java”區(qū)域所展示的代碼那樣??蔀橐粋€關(guān)聯(lián)附加其他修飾符。多重性(Multiplicity)修飾符暗示著實例之間的關(guān)系。在示范代碼中,Employee可以有0個或更多的TimeCard對象。但是,每個TimeCard只從屬于單獨一個Employee。
圖E
聚合(Aggregation)
聚合(圖F)是關(guān)聯(lián)的一種形式,代表兩個類之間的整體/局部關(guān)系。UML類圖關(guān)系中聚合暗示著整體在概念上處于比局部更高的一個級別,而關(guān)聯(lián)暗示兩個類在概念上位于相同的級別。聚合也轉(zhuǎn)換成Java中的一個實例作用域變量。
關(guān)聯(lián)和聚合的區(qū)別純粹是概念上的,而且嚴格反映在語義上。聚合還暗示著實例圖中不存在回路。換言之,只能是一種單向關(guān)系。
圖F
合成(Composition)
合成(圖G)是聚合的一種特殊形式,暗示“局部”在“整體”內(nèi)部的生存期職責(zé)。合成也是非共享的。所以,雖然局部不一定要隨整體的銷毀而被銷毀,但整體要么負責(zé)保持局部的存活狀態(tài),要么負責(zé)將其銷毀。局部不可與其他整體共享。但是,整體可將所有權(quán)轉(zhuǎn)交給另一個對象,后者隨即將承擔(dān)生存期職責(zé)。
Employee和TimeCard的關(guān)系或許更適合表示成“合成”,而不是表示成“關(guān)聯(lián)”。
圖G
泛化(Generalization)
泛化(圖H)表示一個更泛化的元素和一個更具體的元素之間的關(guān)系。UML類圖關(guān)系中泛化是用于對繼承進行建模的UML元素。在Java中,用extends關(guān)鍵字來直接表示這種關(guān)系。
圖H
實現(xiàn)(Realization)
實例(圖I)關(guān)系指定兩個實體之間的一個合同。換言之,一個實體定義一個合同,而另一個實體保證履行該合同。對Java應(yīng)用程序進行建模時,UML類圖關(guān)系中實現(xiàn)關(guān)系可直接用implements關(guān)鍵字來表示。
圖I
精確映射
如本節(jié)所述,UML類圖上的元素能精確映射到Java編程語言。開發(fā)團隊的成員可利用這種精確性來加強溝通,取得對系統(tǒng)結(jié)構(gòu)化設(shè)計的共識。
【編輯推薦】
- 六大UML類圖關(guān)系連連看
- UML建模中繪制UML用例圖行之有效的辦法
- 揭秘五種UML類圖關(guān)系
- 專家提醒 小心掉進UML建模誤區(qū)
- PowerDesigner UML建模技術(shù)簡介