日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

.NET設計模式之UML類圖介紹_基礎應用

作者:springsnow ? 更新時間: 2022-07-01 編程語言

一、概述

UML類圖用來定義系統中的類,包括描述類的結構和類之間的關系。類圖的主要作用于描述系統的靜態結構。

類圖的基本模型元素如下:

我們可以看到,一個類圖表示為長方形,分為3部分,最上面是類名,中間是類的屬性,下面是類的操作。描述信息使用?<< >>?包裹。

類圖中的實體如下:

1、類名

正體字說明類是可被實例化的,斜體字說明類為抽象類。

2、屬性

如圖:

屬性一般通過如上的格式表示——<訪問權限><屬性名>:<屬性類型>=<初始值>

對于可見性 :  

  • +表示public,
  • -表示private,
  • #表示protected,
  • 沒有符號表示默認包訪問權限

(如果一個屬性只在類的內部使用,一般稱為Attribute。若提供了相應的get、set方法,一般稱為Property)

3、方法

如圖:

方法一般通過如上格式表示——<訪問權限><方法名>:(<參數1名>:<參數1類型>,<參數2名>:<參數2類型>):<返回值類型>

靜態方法用下劃線表示。

抽象方法,整條操作都用斜體表示。

4、接口

接口是一系列操作的集合,它指定了提供的一系列服務。

  • 接口

  • 抽象類

抽象類和接口都是類名用斜體表示,接口還可以用一個圓圈表示。

二、關系

在UML類圖中,常見的有以下幾種關系:

  • 依賴(Dependency)
  • 關聯(Association)
  • 聚合(Aggregation)
  • 組合(Composition)
  • 泛化(Generalization)
  • 實現(Realization)

各種關系的強弱順序:

(耦合度依次增強)

依賴 < 關聯 <?聚合 < 組合?<?泛化 < 實現?

1. 依賴(Dependency)

依賴關系是一種使用的關系,即一個類的實現需要另一個類的協助,所以要盡量不使用雙向的互相依賴.(偶然的弱關系)

【代碼表現】:局部變量、方法的參數或者對靜態方法的調用

【箭頭及指向】:帶箭頭的虛線,指向被使用者

2. 關聯(Association)

關聯關系是一種擁有的關系,它使一個類知道另一個類的屬性和方法;如:老師與學生,丈夫與妻子關聯可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。例如:學生擁有課程實例。

【代碼體現】:成員變量

【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者

上圖中,老師與學生是雙向關聯,老師有多名學生,學生也可能有多名老師。但學生與某課程間的關系為單向關聯,一名學生可能要上多門課程,課程是個抽象的東西他不擁有學生。

下圖為自身關聯:

3. 聚合(Aggregation)

聚合關系是整體與部分的關系,且部分可以離開整體而單獨存在。如車和輪胎是整體和部分的關系,輪胎離開車仍然可以存在。(Has-A )

聚合關系是關聯關系的一種,是強的關聯關系;關聯和聚合在語法上無法區分,必須考察具體的邏輯關系。

【代碼體現】:成員變量

【箭頭及指向】:帶空心菱形的實心線,菱形指向整體

4. 組合(Composition)

組合關系是整體與部分的關系,但部分不能離開整體而單獨存在。如公司和部門是整體和部分的關系,沒有公司就不存在部門。。(Has-A )

組合關系是關聯關系的一種,是比聚合關系還要強的關系,它要求普通的聚合關系中代表整體的對象負責代表部分的對象的生命周期。

【代碼體現】:成員變量

【箭頭及指向】:帶實心菱形的實線,菱形指向整體

5. 泛化(Generalization)

泛化關系是一種繼承關系,表示一般與特殊的關系,它指定了子類如何特化父類的所有特征和行為。例如:老虎是動物的一種,即有老虎的特性也有動物的共性。(IS-A)

【箭頭指向】:帶三角箭頭的實線,箭頭指向父類

6. 實現(Realization)

實現關系是一種類與接口的關系,表示類是接口所有特征和行為的實現.例如:大燕是飛翔的關系。

【箭頭指向】:帶三角箭頭的虛線,箭頭指向接口

三、應用舉例

下面這張UML圖,比較形象地展示了各種類圖關系:

原文鏈接:https://www.cnblogs.com/springsnow/p/9389699.html

欄目分類
最近更新