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

UML類圖的圖形表示,你學(xué)會(huì)了嗎?

開發(fā) 前端
接口在類圖中的第一層頂端用構(gòu)造型 <>表示,下面是接口的名字,第二層是字段常量,第三層是抽象方法。(如果用兩層表示,那就只是表示接口名和方法)。

在UML類圖表示類的圖形:

表示類的圖形有三層:

  • 第一層是類名字;
  • 第二層是類的成員變量;
  • 第三層是類的方法。

成員變量以及方法前的訪問修飾符用符號(hào)來表示:

  • “+”表示 public
  • “-”表示 private
  • “#”表示 protected
  • 不帶符號(hào)表示 default

注意:

如果是抽象類和抽象方法,那么用斜體字體表示

在UML類圖表示接口:

接口在類圖中的第一層頂端用構(gòu)造型 <>表示,下面是接口的名字,第二層是字段常量,第三層是抽象方法。(如果用兩層表示,那就只是表示接口名和方法)。

第二種表示接口的方法是“棒棒糖表示法”:

類上面的一根棒棒糖(圓圈+實(shí)線)。圓圈旁為接口名稱,接口方法在實(shí)現(xiàn)類中出現(xiàn)。

在UML類圖中表示包:

類和接口一般都出現(xiàn)在包中,UML類圖中包的表示形式如下圖所示。package表示包名。

在UML類圖中表示關(guān)系:

繼承(泛化):

泛化關(guān)系(Generalization)是指對(duì)象與對(duì)象之間的繼承關(guān)系。如果對(duì)象A和對(duì)象B之間的“is a”關(guān)系成立,那么二者之間就存在繼承關(guān)系,對(duì)象B是父對(duì)象,對(duì)象A是子對(duì)象。例如:一只大雁“is a” 動(dòng)物,很顯然,大雁是和動(dòng)物是繼承關(guān)系。

實(shí)現(xiàn):

實(shí)現(xiàn)關(guān)系是指接口及其實(shí)現(xiàn)類之間的關(guān)系,實(shí)現(xiàn)關(guān)系用空心三角和虛線組成的箭頭來表示,從實(shí)現(xiàn)類指向接口

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

關(guān)聯(lián)關(guān)系(Association)是指對(duì)象和對(duì)象之間的連接,它使一個(gè)對(duì)象知道另一個(gè)對(duì)象的屬性和方法。

在Java中,關(guān)聯(lián)關(guān)系的代碼表現(xiàn)形式為一個(gè)對(duì)象含有另一個(gè)對(duì)象的引用。也就是說,如果一個(gè)對(duì)象的類代碼中,包含有另一個(gè)對(duì)象的引用,那么這兩個(gè)對(duì)象之間就是關(guān)聯(lián)關(guān)系。

關(guān)聯(lián)關(guān)系有單向關(guān)聯(lián)和雙向關(guān)聯(lián)。

雙向關(guān)聯(lián):如果兩個(gè)對(duì)象都知道(即可以調(diào)用)對(duì)方的公共屬性和操作,那么二者就是雙向關(guān)聯(lián)。

單項(xiàng)關(guān)聯(lián):如果只有一個(gè)對(duì)象知道(即可以調(diào)用)另一個(gè)對(duì)象的公共屬性和操作,那么就是單向關(guān)聯(lián)。

大多數(shù)關(guān)聯(lián)都是單向關(guān)聯(lián),單向關(guān)聯(lián)關(guān)系更容易建立和維護(hù),有助于尋找可重用的類。

一個(gè)對(duì)象可以持有其它對(duì)象的數(shù)組或者集合,在UML中,通過放置多重性(multipicity)表達(dá)式在關(guān)聯(lián)線的末端來表示。多重性表達(dá)式可以是一個(gè)數(shù)字、一段范圍或者是它們的組合。多重性允許的表達(dá)式示例如下:

  • 數(shù)字:精確的數(shù)量
  • *或者0..*:表示0到多個(gè)
  • 0..1:表示0或者1個(gè),在Java中經(jīng)常用一個(gè)空引用來實(shí)現(xiàn)
  • 1..*:表示1到多個(gè)

關(guān)聯(lián)關(guān)系又分為依賴關(guān)聯(lián)、聚合關(guān)聯(lián)和組合關(guān)聯(lián)三種類型。

依賴:

如果對(duì)象A用到對(duì)象B,但是和B的關(guān)系不是太明顯的時(shí)候,就可以把這種關(guān)系看作是依賴關(guān)系。比如說A類的方法形參用到了B類。

public class BClass{ } public class AClass{ private BClass b1; // 依賴關(guān)系情況1:成員變量. 這也是關(guān)聯(lián)關(guān)系 public void doWork(BClass b2){ // 依賴關(guān)系情況2: 方法參數(shù) } public void doWork(){ BClass b3; // 依賴關(guān)系情況3: 方法內(nèi)的局部變量 } }

聚合:

  • 聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種特例,他體現(xiàn)的是整體與部分,是一種“弱擁有”的關(guān)系,即has-a的關(guān)系。聚合是整體和個(gè)體之間的關(guān)系。
  • 例如,汽車類與引擎類、輪胎類,以及其它的零件類之間的關(guān)系便整體和個(gè)體的關(guān)系。
  • 與關(guān)聯(lián)關(guān)系一樣,聚合關(guān)系 也是通過實(shí)例變量實(shí)現(xiàn)的。但是關(guān)聯(lián)關(guān)系所涉及的兩個(gè)類是處在同一層次上的,而在聚合關(guān)系中,兩個(gè)類是處在不平等層次上的,一個(gè)代表整體,另一個(gè)代表部分。
  • 聚合關(guān)系表示整體和個(gè)體的關(guān)系,整體和個(gè)體可以相互獨(dú)立存在,一定是有兩個(gè)模塊分別管理整體和個(gè)體。
  • 在UML類圖中,聚合通常使用空心菱形+實(shí)線箭頭表示

組合:

  • 也是整體與部分之間的關(guān)系,但是整體會(huì)影響到部分的生存周期,只要整體對(duì)象不存在了,部分對(duì)象也隨之消亡。如,公司和部門、貓和貓的腿。
  • 組合關(guān)系是關(guān)聯(lián)關(guān)系的一種特例,他體現(xiàn)的是一種contains-a(包含)的關(guān)系,這種關(guān)系比聚合更強(qiáng),也稱為強(qiáng)聚合。
  • 它要求普通的聚合關(guān)系中代表整體的對(duì)象負(fù)責(zé)代表部分對(duì)象的生命周期,組合關(guān)系是不能共享的。代表整體的對(duì)象需要負(fù)責(zé)保持部分對(duì)象和存活,在一些情況下將負(fù)責(zé)代表部分的對(duì)象湮滅掉。代表整體的對(duì)象可以將代表部分的對(duì)象傳遞給另一個(gè)對(duì)象,由后者負(fù)責(zé)此對(duì)象的生命周期。換言之,代表部分的對(duì)象在每一個(gè)時(shí)刻只能與一個(gè)對(duì)象發(fā)生組合關(guān)系,由后者排他地負(fù)責(zé)生命周期。部分和整體的生命周期一樣。
  • 整體和個(gè)體不能獨(dú)立存在,一定是在一個(gè)模塊中同時(shí)管理整體和個(gè)體,生命周期必須相同(級(jí)聯(lián))。
  • 在UML類圖中,組合通常使用實(shí)心菱形+實(shí)線箭頭表示

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2023-01-28 10:40:56

Java虛擬機(jī)代碼

2022-07-08 09:27:48

CSSIFC模型

2024-02-02 11:03:11

React數(shù)據(jù)Ref

2023-01-10 08:43:15

定義DDD架構(gòu)

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-07-26 13:11:21

ChatGPT平臺(tái)工具

2024-01-19 08:25:38

死鎖Java通信

2024-01-02 12:05:26

Java并發(fā)編程

2023-08-01 12:51:18

WebGPT機(jī)器學(xué)習(xí)模型

2022-02-07 12:04:26

Python?;鶊D數(shù)據(jù)

2022-12-06 08:37:43

2024-05-29 07:47:30

SpringJava@Resource

2024-05-06 00:00:00

InnoDBView隔離

2024-08-06 09:47:57

2023-01-30 09:01:54

圖表指南圖形化

2024-07-31 08:39:45

Git命令暫存區(qū)

2023-12-12 08:02:10

2023-10-10 11:04:11

Rust難點(diǎn)內(nèi)存

2022-07-13 08:16:49

RocketMQRPC日志

2023-01-31 08:02:18

點(diǎn)贊
收藏

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