UML類圖

1. UML類圖是什麼

UML是統一建模語言,是一種可視化的面向對象建模語言,是一種用來對真實世界物理進行建模的標準標記,用圖形方式表現典型的面向對象系統的整個結構。html

若是把軟件看成房子,那麼類圖就是房子的施工圖了.數據庫

經過類圖,就能實際的把系統中的各個類,即對象描述清楚,下一步就是按照這個詳細的設計編碼了。設計模式

2. 工具下載&使用

我用的是Enterprise Architect 12.1(如下簡稱EA)這個工具畫UML類圖的,這個工具十分強大,還能夠把數據庫的表逆向生成UML圖.Enterprise Architect下載工具

2.1 建立新項目

安裝成功後咱們來建立一個項目小試身手.學習

這裏的東西是模板自動生成的,能夠點擊看看,學習一下.我這裏都刪了,而後從新建立.編碼

2.2 建立類圖

建立一個類:.net

詳細頁設置屬性和方法:設計

設置屬性:3d

設置方法:code

一個類就建立好了:

再來個簡單的例子 : 咱們有一個動物的接口、狗的抽象類,還有一個泰迪的類,它們的關係是泰迪繼承狗的抽象類,狗的抽象類實現動物接口,它們都有一個公共的叫聲(cry)方法.

用UML類圖畫一下它們三個的關係.

如今咱們已經對類圖的基本結構、訪問修飾符在類圖的符號有了一個基本的瞭解,
接下來作一個進階一點的學習.

3. UML類圖概述

這是網友總結的UML類圖使用案例,很詳細,功能很全.

4. UML類圖詳解

經過上面的圖對UML有一個總體的認識,接下來我會對UML類圖中的一下幾種關係爲你們作一個詳細的介紹:

  • 泛化: 圖形是空心三角+實線
  • 實現: 圖形是空心三角+虛線
  • 關聯: 圖形是箭頭+實線
  • 組合: 圖形是實心菱形+ 實線箭頭
  • 聚合: 圖形是空心菱形+箭頭
  • 依賴: 圖形是箭頭+虛線

4.1 泛化

定義: 泛化是一種繼承關係,繼承就是子類繼承父類的特徵和行爲,使得子類對象(實例)具備父類的實例域和方法,或子類從父類繼承方法,使得子類具備父類相同的行爲。

符號: 空心三角指向父類

示例: 泰迪是狗的一個種類,因此泰迪繼承狗.

4.2 實現

定義: 是一種類與接口的關係,表現是類是接口全部特徵和行爲的實現

符號: 空心三角指向父類

示例: 狗是一種動物,因此狗實現動物的接口

4.3 關聯

定義:

關聯是一種結構關係,說明一個事物的對象與另外一個事物的對象相聯繫.

給定有關聯的兩個類,能夠從 一個類的對象獲得另外一個類的對象.

關聯有兩元關係和多元關係,兩元關係是指一種一對一的關係,多元關係是一對多或多對一的關係。兩個類之間的簡單關聯表示了兩個同等地位類之間的結構關係。

當你想要表示結構化關係時使用關聯。(能夠想一想數據庫表的關聯關係)

一般狀況下,關聯關係是經過類的成員變量來實現的.

符號: 箭頭指向被擁有者

示例: 一個公司僱員,公司與僱員之間就是一種關聯關係。

代碼:

//公司
public class Company {   

 //一個公司僱員,公司與僱員之間就是一種關聯關係。
private Employee emp ; 

}


public class Employee{
}

關聯關係還能夠細分爲聚合和組合兩種.

4.4 聚合

定義: 聚合表示一種弱的"擁有"關係,體現的是A對象能夠包含B對象,但B對象不是A對象的一部分.

符號: 空心菱形指向總體

示例: 雁羣包含大雁,可是大雁能夠脫離雁羣

4.5 組合

定義: 組合是一種強的"擁有"關係,體現了嚴格的部分和總體關係,部分和總體的生命週期同樣 部分不能離開總體存在.

符號: 實心菱形指向總體

示例: 以驅趕劃分,人是由身體、四肢組成的,胳膊不能脫離人單獨存活.

4.6 依賴

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

依賴關係的使用形式: 局部變量、方法的參數或者對靜態方法的調用

符號: 虛線箭頭指向被擁有者.

示例: 一般狀況下,依賴關係體如今某個類的方法使用另外一個類做爲參數,例如人類使用螺絲刀.

代碼:

//螺絲刀,做爲人類的工具,是用來被人類使用的
public class Screwdriver {  

}


public class Person{
 //擰螺絲,需使用螺絲刀
       public void screw(Screwdriver src){   
                    }
}

5. 參考資料

大話設計模式

UML類圖與類的關係詳解

什麼是UML,UML類圖

Java類之間的關聯關係

相關文章
相關標籤/搜索