UML關(guān)聯(lián)符號用法剖析
本節(jié)我們來學(xué)習(xí)一下UML關(guān)聯(lián)符號方面的知識,在軟件開發(fā)過程中經(jīng)常會用到UML建模語言,而UML關(guān)聯(lián)符號優(yōu)勢UML中重要從成部分,所以有必要向大家闡明一下UMLl關(guān)聯(lián)符號問題。
UML關(guān)聯(lián)符號
UML把類之間的關(guān)系分為以下5種.
◆關(guān)聯(lián):類A與類B的實(shí)例之間存在特定的對應(yīng)關(guān)系
◆依賴:類A訪問類B提供的服務(wù)
◆聚集:類A為整體類,類B為局部類,類A的對象由類B的對象組合而成
◆泛化:類A繼承類B
◆實(shí)現(xiàn):類A實(shí)現(xiàn)了B接口
UML關(guān)聯(lián)(Association)
關(guān)聯(lián)指的是類之間的特定對應(yīng)關(guān)系,在UML中用帶實(shí)線的箭頭表示。按照類之間的數(shù)量對比,關(guān)聯(lián)
可以分為以下三種:
◆一對一關(guān)聯(lián)
◆一對多關(guān)聯(lián)
◆多對多關(guān)聯(lián)
注意:關(guān)聯(lián)還要以分為單向關(guān)聯(lián)和雙向關(guān)聯(lián)
依賴(Dependency)
依賴指的是類之間的調(diào)用關(guān)系,在UML中用帶虛線的箭頭表示。如果類A訪問類B的屬性或者方法,
或者類A負(fù)責(zé)實(shí)例化類B,那么可以說類A依賴類B。和關(guān)聯(lián)關(guān)系不同,無須在類A中定義類B類型的屬性。
聚集(Aggregation)
UML關(guān)聯(lián)符號中聚集指的是整體與部分之間的關(guān)系,在UML中用帶實(shí)線的菱形箭頭表示。
聚集關(guān)系還可以分為兩種類型:
◆被聚集的子系統(tǒng)允許被拆卸和替換,這是普通聚集關(guān)系。
◆被聚集的子系統(tǒng)不允許被拆卸和替換,這種聚集稱為強(qiáng)聚集關(guān)系,或者組成關(guān)系。
注:強(qiáng)聚集(組成)可用帶實(shí)線的實(shí)心菱形箭頭表示。
泛化(Generalization)
泛化指的是類之間的繼承關(guān)系,在UML中用帶實(shí)線的三角形箭頭表示。
實(shí)現(xiàn)(Realization)
UML關(guān)聯(lián)符號中實(shí)現(xiàn)指的是類與接口之間的關(guān)系,在UML中用帶虛線的三角形箭頭表示。
以下是GOF設(shè)計(jì)模式中的描述:
箭頭和三角表示子類關(guān)系。
虛箭頭線表示一個(gè)類實(shí)例化另一個(gè)類的對象,箭頭指向被實(shí)例化的對象的類。
普通的箭頭線表示相識(acquaintance也叫UML關(guān)聯(lián)或者引用),意味著一個(gè)對象僅僅知道另一個(gè)對象。相識的對象可能請求彼此的操作,但他們不為對方負(fù)責(zé),它只標(biāo)示了對象間較松散的耦合關(guān)系。
尾部帶有菱形的箭頭線表示聚合(aggregation),意味著一個(gè)對象擁有另一個(gè)對象或者對另一個(gè)對象負(fù)責(zé)。一般我們稱一個(gè)對象包含另一個(gè)對象,或者是另一個(gè)對象的一部分。聚合意味著聚合對象和其所有者具有相同的生命周期。
抽象類名以斜體表示,抽象操作也以斜體表示。圖中可以包括實(shí)現(xiàn)操作的偽代碼,代碼將出現(xiàn)在帶有褶角的框中,并用虛線將該褶角框與代碼所實(shí)現(xiàn)的操作相連
【編輯推薦】