成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

UML中關(guān)聯(lián),組合與聚合等關(guān)系的辨析

開發(fā) 后端
以前學(xué)習(xí)面向?qū)ο蟮臅r(shí)候,常聽到介紹對(duì)象之間的各種關(guān)系,常見的有關(guān)聯(lián),組合與聚合。下面我們分別介紹它們之間的關(guān)系。

以前學(xué)習(xí)面向?qū)ο蟮臅r(shí)候,常聽到介紹對(duì)象之間的各種關(guān)系,常見的有關(guān)聯(lián),組合與聚合。

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

關(guān)聯(lián)是一種最普遍和常見的關(guān)系形式。一般是指一個(gè)對(duì)象可以發(fā)消息給另外一個(gè)對(duì)象。典型的實(shí)現(xiàn)情況下指某個(gè)對(duì)象有一個(gè)指針或者引用指向一個(gè)實(shí)體變量,當(dāng)通過方法的參數(shù)來傳遞或者創(chuàng)建本地變量來訪問這種情況也可以稱之為關(guān)聯(lián)。

典型的代碼如下:

  1. class A  
  2. {  
  3.     private B itemB;  
  4. }  

也可能有如下的形式:

  1. class A  
  2. {  
  3.     void test(B b) {...}  

籠統(tǒng)的情況下,一般兩個(gè)對(duì)象的引用,參數(shù)傳遞等形式產(chǎn)生的關(guān)系,我們都可以稱之為關(guān)聯(lián)關(guān)系。

聚合(aggregation):

聚合表示的是一種has-a的關(guān)系,同時(shí),它也是一種整體-部分關(guān)系。它的特點(diǎn)在于,它這個(gè)部分的生命周期并不由整體來管理。也就是說,當(dāng)整體這個(gè)對(duì)象已經(jīng)不存在的時(shí)候,部分的對(duì)象還是可能繼續(xù)存在的。它的uml圖表示形式如下:

我們用一個(gè)空心的箭頭來表示聚合關(guān)系。

籠統(tǒng)的說聲明周期管理還是比較模糊。我們就以如圖的Person和Address類來進(jìn)一步的解釋。假設(shè)我們要定義這兩個(gè)對(duì)象,對(duì)于每個(gè)人來說,他有一個(gè)關(guān)聯(lián)的地址。人和地址的關(guān)系是has-a的關(guān)系。但是,我們不能說這個(gè)地址是這個(gè)人的一個(gè)組成部分。同時(shí),我們建立地址對(duì)象和人的對(duì)象是可以相對(duì)獨(dú)立存在的。

用代碼來表示的話,典型的代碼樣式如下:

  1. public class Address  
  2. {  
  3. . . .  
  4. }  
  5.  
  6. public class Person  
  7. {  
  8.      private Address address;  
  9.      public Person(Address address)  
  10.      {  
  11.          this.address = address;  
  12.      }  
  13.      . . .  

我們通常通過如下的方式來使用Person對(duì)象:

  1. Address address = new Address();  
  2. Person person = new Person(address); 

或者:

  1. Person person = new Person( new Address() ); 

我們可以看到,我們是創(chuàng)建了一個(gè)獨(dú)立的Address對(duì)象,然后將這個(gè)對(duì)象傳入了Person的構(gòu)造函數(shù)。當(dāng)Person對(duì)象聲明周期結(jié)束的時(shí)候,Address對(duì)象如果還有其他指向它的引用,是可能繼續(xù)存在的。也就是說,他們的聲明周期是相對(duì)獨(dú)立的。

組合(Composition):

當(dāng)理解了聚合的關(guān)系之后,再來看組合的關(guān)系就相對(duì)來說要好很多。和聚合比起來,組合是一種更加嚴(yán)格的has-a關(guān)系。它表示一種嚴(yán)格的組成關(guān)系。以汽車和引擎為例子,引擎是汽車的一個(gè)組成部分。他們是一種嚴(yán)格的部分組成關(guān)系,因此他們的聲明周期也應(yīng)該是一致的。也就是說引擎的聲明周期是通過汽車對(duì)象來管理。

組合的uml圖表示如下:

一般用一個(gè)實(shí)心的箭頭表示組合。

組合代碼的典型示例如下:

  1. public class Engine  
  2. {  
  3. . . .   
  4. }  
  5.  
  6. public class Car  
  7. {  
  8.     Engine e = new Engine();  
  9.     .......  

Engine對(duì)象是在Car對(duì)象里面創(chuàng)建的,所以在Car對(duì)象生命周期結(jié)束的時(shí)候,Engine對(duì)象的生命周期也同樣結(jié)束了。

參考鏈接:

http://www.c-sharpcorner.com/UploadFile/pcurnow/compagg07272007062838AM/compagg.aspx

http://ootips.org/uml-hasa.html

原文鏈接:http://shmilyaw-hotmail-com.iteye.com/blog/1333887

【編輯推薦】

  1. 制作完整的Java可執(zhí)行文件
  2. 簡單實(shí)例:JAVA灰度化 二值化圖片
  3. J2EE總結(jié):Java命名與目錄接口JNDI
  4. Java讀取WEB應(yīng)用中的資源
  5. Java中運(yùn)用數(shù)組的四種排序方法
責(zé)任編輯:林師授 來源: frank-liu的博客
相關(guān)推薦

2011-04-12 14:47:54

UML

2010-07-08 14:58:29

UML類圖關(guān)系

2010-07-09 10:36:14

UML類圖關(guān)系

2010-06-12 15:21:19

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

2010-06-13 09:42:05

UML依賴

2010-07-09 15:29:51

UML類關(guān)系

2010-07-09 10:26:35

UML類圖關(guān)系

2010-06-12 15:04:43

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

2010-07-07 10:54:53

UML關(guān)聯(lián)關(guān)系

2010-07-08 15:28:39

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

2010-06-13 09:18:28

UML依賴

2010-06-28 16:54:49

UML類圖關(guān)系

2010-06-29 13:11:40

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

2010-06-13 10:01:48

面向?qū)ο蠹夹g(shù)與UML

2010-07-06 09:35:37

UML六大關(guān)系

2009-07-20 13:27:01

UML對(duì)象關(guān)系

2010-06-29 10:40:37

UML類圖關(guān)系

2010-06-13 10:56:13

UML文獻(xiàn)

2010-04-14 08:40:38

UMLUML類間關(guān)系UML圖

2010-06-18 14:43:28

UML關(guān)系圖
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 久久久久久久一区二区 | 亚洲成人国产综合 | 香蕉视频1024 | 国产高清一二三区 | 一区二区三区欧美在线 | 亚洲精品久久久久久久不卡四虎 | 成人妇女免费播放久久久 | 91色综合 | 毛片a区 | 精品国产鲁一鲁一区二区张丽 | 亚欧精品 | 黄色在线播放视频 | 亚洲国产精品久久久久秋霞不卡 | 国产精品亚洲第一 | 久久久精彩视频 | 久久国产精品免费一区二区三区 | 中文av电影 | 国产综合久久 | 久久国产精品首页 | 羞羞视频免费观看入口 | 久久99精品久久久久久狂牛 | 美女福利视频 | 国产a爽一区二区久久久 | xnxx 日本免费| 亚洲在线中文字幕 | 久久毛片 | 第一区在线观看免费国语入口 | 国产亚洲精品精品国产亚洲综合 | 午夜欧美| 毛片一区二区 | 国产亚洲成av人在线观看导航 | 91国内外精品自在线播放 | 精品国产一区二区国模嫣然 | 九九免费 | 在线视频中文字幕 | 日日骚视频 | 欧美精品二区 | 国产精品福利一区二区三区 | 国产精品久久久爽爽爽麻豆色哟哟 | 欧美日韩成人影院 | 久久69精品久久久久久久电影好 |