自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

四種UML類圖關(guān)系簡(jiǎn)明介紹

開(kāi)發(fā) 架構(gòu)
UML中有五類圖,你對(duì)每種圖的特點(diǎn)和作用是否熟悉,這里就向大家介紹一下UML類圖關(guān)系,相信通過(guò)本文的學(xué)習(xí)你對(duì)UML類圖關(guān)系一定會(huì)有明確的認(rèn)識(shí)。

本節(jié)向大家介紹一下UML類圖關(guān)系,UML類圖中的關(guān)系分為四種:泛化、依賴、關(guān)聯(lián)、實(shí)現(xiàn);關(guān)聯(lián)關(guān)系又可以細(xì)化為聚合和組合。下面就讓我們一起來(lái)看一下UML類圖關(guān)系的詳細(xì)介紹吧。

UML類圖關(guān)系

UML類圖關(guān)系分為四種:泛化、依賴、關(guān)聯(lián)、實(shí)現(xiàn);關(guān)聯(lián)關(guān)系又可以細(xì)化為聚合和組合。

1.泛化(Generalization)

泛化是父類和子類之間的關(guān)系,子類繼承父類的所有結(jié)構(gòu)和行為。在子類中可以增加新的結(jié)構(gòu)和行為,也可以覆寫父類的行為。

一般化關(guān)系表示類與類、接口與接口之間的繼承關(guān)系。關(guān)系中的箭頭由子類指向父類。在Java中,用extends關(guān)鍵字來(lái)直接表示這種關(guān)系。

例:
publicabstractclassEmployee{
}
publicclassProgrammerextendsEmployee{
}

2.依賴(Dependency)

UML類圖關(guān)系中依賴關(guān)系是一種使用關(guān)系,特定事物的改變有可能會(huì)影響到使用該事物的事物,反之不成立。在你想顯示一個(gè)事物使用另一個(gè)事物時(shí)使用。

通常情況下,依賴關(guān)系體現(xiàn)在某個(gè)類的方法使用另一個(gè)類作為參數(shù)。

依賴:對(duì)于兩個(gè)相對(duì)獨(dú)立的對(duì)象,當(dāng)一個(gè)對(duì)象負(fù)責(zé)構(gòu)造另一個(gè)對(duì)象的實(shí)例,或者依賴另一個(gè)對(duì)象的服務(wù)(方法函數(shù))時(shí),這兩個(gè)對(duì)象之間主要體現(xiàn)為依賴關(guān)系。

[具體表現(xiàn)]
依賴關(guān)系表現(xiàn)在1.局部變量(Question:這里指的是方法的局部變量,還是類的成員變量,還是都是???),2.方法的參數(shù),3.以及對(duì)靜態(tài)方法的調(diào)用
[現(xiàn)實(shí)例子]
比如說(shuō)你要去擰螺絲,你是不是要借助(也就是依賴)螺絲刀(Screwdriver)來(lái)幫助你完成擰螺絲(screw)的工作
[UML表現(xiàn)](圖1.2)
dependency

圖1.2Person類與Screwdriver類的依賴關(guān)系

[代碼表現(xiàn)]
publicclassPerson{

publicvoidscrew(Screwdriverscrewdriver){
screwdriver.screw();
}
}

3.關(guān)聯(lián)(Association)

UML類圖關(guān)系中關(guān)聯(lián)是一種結(jié)構(gòu)化的關(guān)系,指一種對(duì)象和另一種對(duì)象有聯(lián)系。給定有關(guān)聯(lián)的兩個(gè)類,可以從一個(gè)類的對(duì)象得到另一個(gè)類的對(duì)象。關(guān)聯(lián)有兩元關(guān)系和多元關(guān)系。兩元關(guān)系是指一種一對(duì)一的關(guān)系,多元關(guān)系是一對(duì)多或多對(duì)一的關(guān)系。一般用實(shí)線連接有關(guān)聯(lián)的同一個(gè)類或不同的兩個(gè)類。當(dāng)你想要表示結(jié)構(gòu)化關(guān)系時(shí)使用關(guān)聯(lián)。

關(guān)聯(lián)關(guān)系是通過(guò)類的成員變量來(lái)實(shí)現(xiàn)的。

3.1聚合(Aggregation)

UML類圖關(guān)系中聚合是一種特殊的關(guān)聯(lián)。它描述了“hasa”關(guān)系,表示整體對(duì)象擁有部分對(duì)象。
關(guān)聯(lián)關(guān)系和聚合關(guān)系來(lái)語(yǔ)法上是沒(méi)辦法區(qū)分的,從語(yǔ)義上才能更好的區(qū)分兩者的區(qū)別。聚合是較強(qiáng)的關(guān)聯(lián)關(guān)系,強(qiáng)調(diào)的是整體與部分之間的關(guān)系。
聚合是關(guān)聯(lián)的一種形式,代表兩個(gè)類之間的整體/局部關(guān)系。聚合暗示著整體在概念上處于比局部更高的一個(gè)級(jí)別,而關(guān)聯(lián)暗示兩個(gè)類在概念上位于相同的級(jí)別。
與關(guān)聯(lián)關(guān)系一樣,聚合關(guān)系也是通過(guò)類的成員變量來(lái)實(shí)現(xiàn)的。#p#

3.2組合(Composition)

UML類圖關(guān)系中組合是聚合的一種形式,它具有更強(qiáng)的擁有關(guān)系,強(qiáng)調(diào)整體與部分的生命周期是一致的。整體負(fù)責(zé)部分的生命周期的管理。如果整體被銷毀,部分也必須跟著一起被銷毀,如果所有者被復(fù)制,部分也必須一起被復(fù)制。

與關(guān)聯(lián)關(guān)系一樣,組合關(guān)系也是通過(guò)類的成員變量來(lái)實(shí)現(xiàn)的。

UML類圖關(guān)系中聚合和組合的區(qū)別在于:聚合關(guān)系是“has-a”關(guān)系,組合關(guān)系是“contains-a”關(guān)系;聚合關(guān)系表示整體與部分的關(guān)系比較弱,而組合比較強(qiáng);聚合關(guān)系中代表部分事物的對(duì)象與代表聚合事物的對(duì)象的生存期無(wú)關(guān),一旦刪除了聚合對(duì)象不一定就刪除了代表部分事物的對(duì)象。組合中一旦刪除了組合對(duì)象,同時(shí)也就刪除了代表部分事物的對(duì)象。
我們用淺顯的例子來(lái)說(shuō)明聚合和組合的區(qū)別?!皣?guó)破家亡”,國(guó)滅了,家自然也沒(méi)有了,“國(guó)”和“家”顯然也是組合關(guān)系。而相反的,計(jì)算機(jī)和它的外設(shè)之間就是聚合關(guān)系,因?yàn)樗鼈冎g的關(guān)系相對(duì)松散,計(jì)算機(jī)沒(méi)了,外設(shè)還可以獨(dú)立存在,還可以接在別的計(jì)算機(jī)上。在聚合關(guān)系中,部分可以獨(dú)立于聚合而存在,部分的所有權(quán)也可以由幾個(gè)聚合來(lái)共享,比如打印機(jī)就可以在辦公室內(nèi)被廣大同事共用。

關(guān)聯(lián)和聚合的區(qū)別主要在語(yǔ)義上,關(guān)聯(lián)的兩個(gè)對(duì)象之間一般是平等的,例如你是我的朋友,聚合則一般不是平等的,例如一個(gè)公司包含了很多員工,其實(shí)現(xiàn)上是差不多的。聚合和組合的區(qū)別則在語(yǔ)義和實(shí)現(xiàn)上都有差別,組合的兩個(gè)對(duì)象之間其生命期有很大的關(guān)聯(lián),被組合的對(duì)象是在組合對(duì)象創(chuàng)建的同時(shí)或者創(chuàng)建之后創(chuàng)建,在組合對(duì)象銷毀之前銷毀。一般來(lái)說(shuō)被組合對(duì)象不能脫離組合對(duì)象獨(dú)立存在,而且也只能屬于一個(gè)組合對(duì)象,例如一個(gè)文檔的版本,必須依賴于文檔的存在,也只能屬于一個(gè)文檔。聚合則不一樣,被聚合的對(duì)象可以屬于多個(gè)聚合對(duì)象,例如一個(gè)員工可能可以屬于多個(gè)公司。

我想舉個(gè)通俗的例子

你和你的心臟之間是composition關(guān)系(心臟只屬于你自己)

你和你買的書之間是aggregation關(guān)系(書可能是別人的)

你和你的朋友之間是association關(guān)系

4.實(shí)現(xiàn)(Realization)

UML類圖關(guān)系中實(shí)現(xiàn)關(guān)系指定兩個(gè)實(shí)體之間的一個(gè)合約。換言之,一個(gè)實(shí)體定義一個(gè)合約,而另一個(gè)實(shí)體保證履行該合約。


類間關(guān)系有很多種,在大的類別上可以分為兩種:縱向關(guān)系、橫向關(guān)系。
縱向關(guān)系就是繼承關(guān)系,它的概念非常明確,也成為OO的三個(gè)重要特征之一,這里不過(guò)多的討論。

橫向關(guān)系較為微妙,按照UML的建議大體上可以分為四種:

依賴(Dependency)

關(guān)聯(lián)(Association)

聚合(Aggregation)

組合(Composition)

它們的強(qiáng)弱關(guān)系是沒(méi)有異議的:依賴<關(guān)聯(lián)<聚合<組合<泛化(繼承)

在UML系統(tǒng)開(kāi)發(fā)中有三個(gè)主要的模型:
功能模型:從用戶的角度展示系統(tǒng)的功能,包括用例圖。
對(duì)象模型:采用對(duì)象,屬性,操作,關(guān)聯(lián)等概念展示系統(tǒng)的結(jié)構(gòu)和基礎(chǔ),包括類圖。
動(dòng)態(tài)模型:展現(xiàn)系統(tǒng)的內(nèi)部行為。包括序列圖,活動(dòng)圖,狀態(tài)圖。本節(jié)關(guān)于UML類圖關(guān)系介紹到這里。

【編輯推薦】

  1. UML類圖中的四種關(guān)系深入剖析
  2. UML類圖元素全面剖析
  3. 實(shí)例講解UML對(duì)象圖使用
  4. 軟件設(shè)計(jì)過(guò)程中面向?qū)ο骍ML技術(shù)如何使用
  5. UML建?;A(chǔ)教程
責(zé)任編輯:佚名 來(lái)源: sina.com.cn
相關(guān)推薦

2010-06-09 09:41:33

UML類圖

2010-06-09 10:04:59

UML類圖

2010-06-29 09:08:15

UML類圖關(guān)系

2010-07-08 11:20:13

UML動(dòng)態(tài)建模

2010-07-05 09:34:45

UML類關(guān)系圖

2010-07-07 11:02:47

UML類圖關(guān)系

2010-06-18 14:43:28

UML關(guān)系圖

2010-07-05 09:48:00

UML類關(guān)系圖

2010-06-12 18:30:57

UML類圖關(guān)系

2010-07-08 15:56:52

UML類圖依賴關(guān)系

2010-06-28 16:54:49

UML類圖關(guān)系

2010-07-01 11:33:17

UML類圖關(guān)系

2010-06-11 18:09:26

UML對(duì)象圖

2010-06-29 12:55:44

UML類圖依賴關(guān)系

2010-06-29 13:11:40

UML類圖依賴關(guān)系

2010-07-09 10:45:11

UML類圖關(guān)系

2010-07-08 15:28:39

UML類圖依賴關(guān)系

2010-07-01 12:21:35

UML類圖關(guān)系

2010-06-28 17:26:02

UML類圖關(guān)系

2010-06-09 19:34:58

UML圖
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)