實(shí)例講解Java中UML接口實(shí)現(xiàn)
本文和大家重點(diǎn)討論一下UML接口問(wèn)題,UML統(tǒng)一建模語(yǔ)言相信大家應(yīng)該有所了解,那么UML接口的概念你是否熟悉,這里就向大家簡(jiǎn)單介紹一下UML接口的一些內(nèi)容,希望本文的介紹對(duì)你有所幫助。
UML接口
Java編程語(yǔ)言中接口(Interface)的概念也能夠與UML概念匹配。UML中的接口是一種實(shí)現(xiàn)繼承的形式,但這種繼承形式與Java中通過(guò)關(guān)鍵詞extends實(shí)現(xiàn)的繼承有所不同。
在Java中,extends關(guān)鍵詞描述了一種繼承形式,它既繼承接口也繼承行為。這種類(lèi)型的繼承有時(shí)被稱(chēng)為Sub-classing。與其他的面象對(duì)象編程語(yǔ)言不同,Java類(lèi)只能從一個(gè)類(lèi)繼承。許多時(shí)候,設(shè)計(jì)UML圖的人熟悉多種編程語(yǔ)言,常常會(huì)引入多重繼承的思想,例如C++的多重繼承思想。從已有的Java代碼生成UML圖(這個(gè)過(guò)程稱(chēng)為反向工程)不會(huì)帶來(lái)多重繼承的問(wèn)題,但如果要求一個(gè)Java程序員去實(shí)現(xiàn)一個(gè)帶有多重繼承的UML類(lèi)圖,就會(huì)出現(xiàn)問(wèn)題。如果多重繼承中的超類(lèi)是純抽象類(lèi),這部分類(lèi)可以用Java的接口來(lái)描述,但是,如果只做這種轉(zhuǎn)換不足以把UML類(lèi)圖中的多重繼承全部轉(zhuǎn)換成單重繼承,這時(shí)就必須修改UML類(lèi)圖重新建模了。
雖然Java不支持C++之類(lèi)語(yǔ)言那樣的多重繼承,但它支持實(shí)現(xiàn)多重UML接口。這種由Java關(guān)鍵詞implements聲明的繼承只繼承接口,這種繼承有時(shí)被稱(chēng)作Sub-typing。在UML中,實(shí)現(xiàn)接口的類(lèi)與接口定義之間的關(guān)系叫做Realization關(guān)系,用一個(gè)虛線封閉箭頭表示,從實(shí)現(xiàn)接口的類(lèi)指向UML接口。接口本身的UML圖與普通類(lèi)一樣,但它的名字上面要加上“<>”。圖四由圖一修改而成,Payment類(lèi)被一個(gè)接口取代。(關(guān)于Realization名稱(chēng)的說(shuō)明:Realization最常見(jiàn)的中文譯名是“實(shí)現(xiàn)”。但是,Java的implements也叫做“實(shí)現(xiàn)”。為避免混淆,本文中凡是出現(xiàn)Realization的地方一律直接使用英文)。
Java中UML接口可以從一個(gè)或者多個(gè)其他接口擴(kuò)展。
UML一般化關(guān)系(實(shí)線封閉箭頭)可用來(lái)描述這種關(guān)系,如圖五所示。UML還支持另一種接口符號(hào),即用圓圈表示接口(加上連線之后就成了棒棒糖的樣子),但這種表示法多用于UML組件圖,在UML類(lèi)圖中比較少見(jiàn)。如果UML圖規(guī)模較大,有大量的類(lèi)實(shí)現(xiàn)一個(gè)常用接口,整個(gè)UML圖可能亂成一團(tuán)糟。《JavaDesign》一書(shū)提出了一種簡(jiǎn)化方法,后來(lái)又被《StreamlinedObjectModeling》一書(shū)的作者采用,這就是在實(shí)現(xiàn)接口的類(lèi)中,用接口的名字替代從接口繼承的方法,不過(guò)這不屬于標(biāo)準(zhǔn)方法。遺憾的是,目前似乎還沒(méi)有工具支持這種轉(zhuǎn)換。
結(jié)束語(yǔ):
繼承和接口是Java語(yǔ)言中非常有用的機(jī)制,我們已經(jīng)看到,可以用UML的一般化和Realization關(guān)系使得Java的這兩個(gè)概念可視化。另外,一些非標(biāo)準(zhǔn)化的表示方法能夠極大地簡(jiǎn)化UML圖。在下一篇文章中,我們將了解如何在Java程序中保留無(wú)法直接表達(dá)的UML語(yǔ)義信
【編輯推薦】
- 解析Java中UML接口實(shí)現(xiàn)
 - UML構(gòu)件圖的設(shè)計(jì)步驟和應(yīng)用說(shuō)明
 - 詳解UML公共機(jī)制中修飾和擴(kuò)展機(jī)制
 - 解析用Visio畫(huà)UML圖的基本操作和幾種小技巧
 - 六種UML圖關(guān)系的表示及在代碼中體現(xiàn)
 















 
 
 
 
 
 
 