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

四種UML類圖關系簡明介紹

開發 架構
UML中有五類圖,你對每種圖的特點和作用是否熟悉,這里就向大家介紹一下UML類圖關系,相信通過本文的學習你對UML類圖關系一定會有明確的認識。

本節向大家介紹一下UML類圖關系,UML類圖中的關系分為四種:泛化、依賴、關聯、實現;關聯關系又可以細化為聚合和組合。下面就讓我們一起來看一下UML類圖關系的詳細介紹吧。

UML類圖關系

UML類圖關系分為四種:泛化、依賴、關聯、實現;關聯關系又可以細化為聚合和組合。

1.泛化(Generalization)

泛化是父類和子類之間的關系,子類繼承父類的所有結構和行為。在子類中可以增加新的結構和行為,也可以覆寫父類的行為。

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

例:
publicabstractclassEmployee{
}
publicclassProgrammerextendsEmployee{
}

2.依賴(Dependency)

UML類圖關系中依賴關系是一種使用關系,特定事物的改變有可能會影響到使用該事物的事物,反之不成立。在你想顯示一個事物使用另一個事物時使用。

通常情況下,依賴關系體現在某個類的方法使用另一個類作為參數。

依賴:對于兩個相對獨立的對象,當一個對象負責構造另一個對象的實例,或者依賴另一個對象的服務(方法函數)時,這兩個對象之間主要體現為依賴關系。

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

圖1.2Person類與Screwdriver類的依賴關系

[代碼表現]
publicclassPerson{

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

3.關聯(Association)

UML類圖關系中關聯是一種結構化的關系,指一種對象和另一種對象有聯系。給定有關聯的兩個類,可以從一個類的對象得到另一個類的對象。關聯有兩元關系和多元關系。兩元關系是指一種一對一的關系,多元關系是一對多或多對一的關系。一般用實線連接有關聯的同一個類或不同的兩個類。當你想要表示結構化關系時使用關聯。

關聯關系是通過類的成員變量來實現的。

3.1聚合(Aggregation)

UML類圖關系中聚合是一種特殊的關聯。它描述了“hasa”關系,表示整體對象擁有部分對象。
關聯關系和聚合關系來語法上是沒辦法區分的,從語義上才能更好的區分兩者的區別。聚合是較強的關聯關系,強調的是整體與部分之間的關系。
聚合是關聯的一種形式,代表兩個類之間的整體/局部關系。聚合暗示著整體在概念上處于比局部更高的一個級別,而關聯暗示兩個類在概念上位于相同的級別。
與關聯關系一樣,聚合關系也是通過類的成員變量來實現的。#p#

3.2組合(Composition)

UML類圖關系中組合是聚合的一種形式,它具有更強的擁有關系,強調整體與部分的生命周期是一致的。整體負責部分的生命周期的管理。如果整體被銷毀,部分也必須跟著一起被銷毀,如果所有者被復制,部分也必須一起被復制。

與關聯關系一樣,組合關系也是通過類的成員變量來實現的。

UML類圖關系中聚合和組合的區別在于:聚合關系是“has-a”關系,組合關系是“contains-a”關系;聚合關系表示整體與部分的關系比較弱,而組合比較強;聚合關系中代表部分事物的對象與代表聚合事物的對象的生存期無關,一旦刪除了聚合對象不一定就刪除了代表部分事物的對象。組合中一旦刪除了組合對象,同時也就刪除了代表部分事物的對象。
我們用淺顯的例子來說明聚合和組合的區別。“國破家亡”,國滅了,家自然也沒有了,“國”和“家”顯然也是組合關系。而相反的,計算機和它的外設之間就是聚合關系,因為它們之間的關系相對松散,計算機沒了,外設還可以獨立存在,還可以接在別的計算機上。在聚合關系中,部分可以獨立于聚合而存在,部分的所有權也可以由幾個聚合來共享,比如打印機就可以在辦公室內被廣大同事共用。

關聯和聚合的區別主要在語義上,關聯的兩個對象之間一般是平等的,例如你是我的朋友,聚合則一般不是平等的,例如一個公司包含了很多員工,其實現上是差不多的。聚合和組合的區別則在語義和實現上都有差別,組合的兩個對象之間其生命期有很大的關聯,被組合的對象是在組合對象創建的同時或者創建之后創建,在組合對象銷毀之前銷毀。一般來說被組合對象不能脫離組合對象獨立存在,而且也只能屬于一個組合對象,例如一個文檔的版本,必須依賴于文檔的存在,也只能屬于一個文檔。聚合則不一樣,被聚合的對象可以屬于多個聚合對象,例如一個員工可能可以屬于多個公司。

我想舉個通俗的例子

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

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

你和你的朋友之間是association關系

4.實現(Realization)

UML類圖關系中實現關系指定兩個實體之間的一個合約。換言之,一個實體定義一個合約,而另一個實體保證履行該合約。


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

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

依賴(Dependency)

關聯(Association)

聚合(Aggregation)

組合(Composition)

它們的強弱關系是沒有異議的:依賴<關聯<聚合<組合<泛化(繼承)

在UML系統開發中有三個主要的模型:
功能模型:從用戶的角度展示系統的功能,包括用例圖。
對象模型:采用對象,屬性,操作,關聯等概念展示系統的結構和基礎,包括類圖。
動態模型:展現系統的內部行為。包括序列圖,活動圖,狀態圖。本節關于UML類圖關系介紹到這里。

【編輯推薦】

  1. UML類圖中的四種關系深入剖析
  2. UML類圖元素全面剖析
  3. 實例講解UML對象圖使用
  4. 軟件設計過程中面向對象UML技術如何使用
  5. UML建模基礎教程
責任編輯:佚名 來源: sina.com.cn
相關推薦

2010-06-09 10:04:59

UML類圖

2010-06-09 09:41:33

UML類圖

2010-06-29 09:08:15

UML類圖關系

2010-07-08 11:20:13

UML動態建模

2010-07-07 11:02:47

UML類圖關系

2010-07-05 09:34:45

UML類關系圖

2010-06-18 14:43:28

UML關系圖

2010-07-05 09:48:00

UML類關系圖

2010-06-12 18:30:57

UML類圖關系

2010-07-08 15:56:52

UML類圖依賴關系

2010-06-28 16:54:49

UML類圖關系

2010-07-01 11:33:17

UML類圖關系

2010-06-11 18:09:26

UML對象圖

2010-06-29 12:55:44

UML類圖依賴關系

2010-06-29 13:11:40

UML類圖依賴關系

2010-07-09 10:45:11

UML類圖關系

2010-06-09 19:34:58

UML圖

2010-07-08 15:28:39

UML類圖依賴關系

2010-07-01 12:21:35

UML類圖關系

2010-06-28 17:26:02

UML類圖關系
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 超碰人人在线 | 人人干视频在线 | 在线国产精品一区 | 亚洲人成人一区二区在线观看 | 影音先锋中文在线 | 久久久久免费精品国产 | 亚洲视频二区 | 成人av电影在线 | av三级| 中文一级片 | 亚州午夜精品 | 一区二区在线 | 91影库 | 亚洲国产偷 | 亚洲福利 | 久久一及片 | 中文字幕一区二区三区四区 | 久久精品国产免费看久久精品 | 午夜影院视频在线观看 | 亚洲日本一区二区三区四区 | 男人的天堂久久 | 毛片视频网址 | 欧美日韩精品久久久免费观看 | 99在线免费观看视频 | 色欧美片视频在线观看 | 久久综合狠狠综合久久综合88 | av激情在线| 亚洲综合色婷婷 | 涩涩视频大全 | 99久久婷婷国产综合精品电影 | 国产综合欧美 | 美女三区| 国产视频久 | 日韩欧美高清 | 一区在线观看视频 | 国产免费让你躁在线视频 | 欧美亚洲网站 | 99免费在线视频 | 亚欧性视频| 国产成人午夜高潮毛片 | 国产精品视频一区二区三区不卡 |