深入學(xué)習(xí)UML對(duì)象及關(guān)系圖
本文和大家重點(diǎn)討論一下UML對(duì)象及關(guān)系圖,主要向大家介紹一下UML對(duì)象圖和UML關(guān)系圖,希望通過(guò)本文的學(xué)習(xí)你對(duì)UML對(duì)象及關(guān)系圖有明確的認(rèn)識(shí)。
UML對(duì)象圖
對(duì)象與類的關(guān)系
對(duì)象的概念與特性
◆對(duì)象代表一個(gè)單獨(dú)的、可確認(rèn)的物體、單元或?qū)嶓w,它可以是具體的也可以是抽象的,在問(wèn)題領(lǐng)域里有確切定義的角色。換句話說(shuō),對(duì)象是邊界非常清楚的任何事物
◆狀態(tài)(屬性):對(duì)象的狀態(tài)包括對(duì)象的所有屬性(通常是靜態(tài)的)和這些屬性的當(dāng)前值(通常是動(dòng)態(tài)的)
◆行為(方法,事件):沒(méi)有一個(gè)對(duì)象是孤立存在的,對(duì)象可以被操作,也可以操作別的對(duì)象。而行為就是一個(gè)對(duì)象根據(jù)它的狀態(tài)改變和消息傳送所采取的行動(dòng)和所做出的反應(yīng)
◆標(biāo)識(shí)(名字):為了將一個(gè)對(duì)象與其它所有對(duì)象區(qū)分開(kāi)來(lái),我們通常會(huì)給它起一個(gè)“標(biāo)識(shí)”
UML對(duì)象及關(guān)系圖中對(duì)象與類
◆對(duì)象是一個(gè)存在于時(shí)間和空間中的具體實(shí)體,而類僅代表一個(gè)抽象,抽象出對(duì)象的“本質(zhì)”。
◆類是共享一個(gè)公用結(jié)構(gòu)和一個(gè)公共行為對(duì)象集合
◆類是靜態(tài)的,對(duì)象是動(dòng)態(tài)的;類是一般化,對(duì)象是個(gè)性化;類是定義,對(duì)象是實(shí)例;類是抽象、對(duì)象是具體
UML關(guān)系圖
類之間的UML關(guān)系圖軟件開(kāi)發(fā)
UML對(duì)象及關(guān)系圖中類間關(guān)系有很多種,在大的類別上可以分為兩種:縱向關(guān)系、橫向關(guān)系。
縱向關(guān)系就是繼承關(guān)系,它的概念非常明確,也成為OO的三個(gè)重要特征之一,這里不過(guò)多的討論。
橫向關(guān)系較為微妙,按照UML的建議大體上可以分為四種:
1.依賴(Dependency)
2.關(guān)聯(lián)(Association)
3.聚合(Aggregation)
4.組合(Composition)
它們的強(qiáng)弱關(guān)系是沒(méi)有異議的:依賴<關(guān)聯(lián)<聚合<組合
然而UML對(duì)象及關(guān)系圖中它們四個(gè)之間的差別卻又不那么好拿捏,需要好好體會(huì)。
1.依賴:
UML表示法:虛線+箭頭
關(guān)系:"...usesa..."
UML對(duì)象及關(guān)系圖中的依賴關(guān)系最為簡(jiǎn)單,也***理解,所謂依賴就是某個(gè)對(duì)象的功能依賴于另外的某個(gè)對(duì)象,而被依賴的對(duì)象只是作為一種工具在使用,而并不持有對(duì)它的引用。
2.關(guān)聯(lián):
UML表示法:實(shí)線+箭頭
關(guān)系:"...hasa..."
UML對(duì)象及關(guān)系圖中所謂關(guān)聯(lián)就是某個(gè)對(duì)象會(huì)長(zhǎng)期的持有另一個(gè)對(duì)象的引用,而二者的關(guān)聯(lián)往往也是相互的。關(guān)聯(lián)的兩個(gè)對(duì)象彼此間沒(méi)有任何強(qiáng)制性的約束,只要二者同意,可以隨時(shí)解除關(guān)系或是進(jìn)行關(guān)聯(lián),它們?cè)谏趩?wèn)題上沒(méi)有任何約定。被關(guān)聯(lián)的對(duì)象還可以再被別的對(duì)象關(guān)聯(lián),所以關(guān)聯(lián)是可以共享的。
3.聚合:
UML表示法:空心菱形+實(shí)線+箭頭
關(guān)系:"...ownsa..."
UML對(duì)象及關(guān)系圖中的聚合是強(qiáng)版本的關(guān)聯(lián)。它暗含著一種所屬關(guān)系以及生命期關(guān)系。被聚合的對(duì)象還可以再被別的對(duì)象關(guān)聯(lián),所以被聚合對(duì)象是可以共享的。雖然是共享的,聚合代表的是一種更親密的關(guān)系。
4.組合:
UML表示法:實(shí)心菱形+實(shí)線+箭頭
關(guān)系:"...isapartof..."
UML對(duì)象及關(guān)系圖中的組合是關(guān)系當(dāng)中的***版本,它直接要求包含對(duì)象對(duì)被包含對(duì)象的擁有以及包含對(duì)象與被包含對(duì)象生命期的關(guān)系。被包含的對(duì)象還可以再被別的對(duì)象關(guān)聯(lián),所以被包含對(duì)象是可以共享的,然而絕不存在兩個(gè)包含對(duì)象對(duì)同一個(gè)被包含對(duì)象的共享。
【編輯推薦】
- UML對(duì)象圖和類圖關(guān)系解析
- 深入剖析建模工具UML中有哪些UML圖
- UML圖中用例圖和活動(dòng)圖簡(jiǎn)介
- 實(shí)例解析四大UML類關(guān)系圖
- 解析UML對(duì)象圖建模技術(shù)及類圖和對(duì)象圖區(qū)別