什么是統一建模語言,來看看百科中的介紹
統一建模語言(Unified Modeling Language,UML)是一種為面向物件系統的產品進行說明、可視化和編制檔案的一種標準語言,是非專利的第三代建模和規約語言,UML是面向物件設計的建模工具,獨立于任何具體程式設計語言,
簡單來說UML就是脫離于具體編程語言,以面向物件的形式,對產品進行說明的一種檔案語言,
我們今天這里只說類圖:Class diagram
類圖是一種描述一個系統中類、介面的靜態結構,以及靜態關系的一種圖,是最常用也是唯一可以直接映射成面向物件語言的圖,
類圖主要分為兩部分:
1、類、介面的內部定義
2、類、介面之間的關系
這兩部分都簡單,我們逐一來看:(防盜連接:本文首發自http://www.cnblogs.com/jilodream/ )
(一)類、介面的內部定義
結構如圖:

主要分為三個部分:
類名、屬性(欄位)、方法(功能、能力)
類名:通暢采用大駝峰規范命名
屬性:一般用以下格式
可見性 屬性名稱: 屬性型別 [=默認值]
可見性如下表:

方法:一般用以下格式
可見性 方法名稱: 回傳型別
可見性的表達方式和屬性的規范一樣,我們來舉個例子,如下圖:
(二)類、介面之間的關系
這種關系存在類和介面之間,介面和介面之間,類和類之間,
我們一般將關系分為六種型別:
繼承關系
實作關系
依賴
關聯
聚合
組合
我一般將這些分為三類
1、繼承和實作
這倆關系非常相像
繼承關系,代表的是父類和子類之間的關系,這種類關系的耦合程度是最強的,我們一般用“實線+空心三角”的形式標記,箭頭由子類指向父類,
實作關系,代表的是介面和實作類之間的關系,這種類關系的程度非常強,但是還是要弱于繼承關系,我們一般用“虛線+空心三角”的形式標記,箭頭由實作類指向介面,
如下圖:機械鍵盤類繼承自鍵盤類,鍵盤類實作了鍵盤介面,同時我們添加了UML的注釋檔案,解釋了軸型別屬性,(防盜連接:本文首發自http://www.cnblogs.com/jilodream/ )
實作(鍵盤介面+鍵盤):

繼承(鍵盤+機械鍵盤):

2、聚合和組合
這倆關系也非常相近
都是代表一個類是另外一個類的組成部分,但是為了區分耦合的強弱關系,我們才進行區分:
聚合代表一個類是另外一個類的成員,但是可以獨立開來,比如課桌和教室,黑板和教室,他們都屬于教室的組成部分,但是可以獨立存在,即使教室不存在了,課桌仍然可以獨立存在,或者是用于其他教室,教室和課桌之間的依賴關系并不是共存亡,也就是相同生命周期的關系,
我們一般用“實線+空心菱心”的形式標記,菱形指向集合類,
組合形式則是更強的依賴關系,代表一個類是另外一個類的不可或缺的組成部分,如果缺失,那么集合類也不能再稱之為該類,兩者的生命周期一般是同步的,例如太陽系是由太陽+行星組成,如果如果沒有太陽了,那么太陽系只能算作是一個 星云,不能再稱之為太陽系,兩者的生命周期是同步的,
再或者電腦是由顯示幕鍵盤主機等器件組成的,如果 沒有主機,那么就不能稱之為電腦,兩者的生命周期是同步的,沒有主機的一堆設備,不能稱之為電腦,我們一般用“實線+實心菱心”的形式標記,菱形指向組合類,
要注意組合和聚合 其實沒有特別明顯的界限,二者的界限是有些模糊的,
聚合(學校+老師):

組合(電腦+鍵盤):

3、依賴、關聯
這倆關系也非常相近
我們一般將非常弱,沒有直接耦合,只存在于某個方法中的耦合關系(臨時變數的使用)稱為依賴關系,比如某個方法需要獲取下時間,那么對時間類就是依賴,所以這種關系是類與類之間最弱的一種耦合關系,它只存在于方法的依賴中,并不是物件之間直接依賴,我們用“虛線+箭頭”表示,箭頭指向被依賴的物件,
關聯關系是物件之間的直接飲用關系,這是類之間最常用的一種關系,我們一般將之稱為一般關聯關系、聚合關系、組合關系,上文中的說的聚合、組合關系就屬于這里的關聯關系,關聯關系用“實線+箭頭”表示,箭頭指向被依賴的物件,如公司依賴員工,則公司指向員工,但是員工其實也可以同時在多加公司任職,所以員工可以也依賴不同公司,像這種互相依賴的我們稱之為雙向關聯,雙向關聯我們用一根實線來表示,除此之外還有一種特殊情況,就是自關聯,也就是一個類的某個屬性還是自身,我們需要用箭頭再指向自己,(防盜連接:本文首發自http://www.cnblogs.com/jilodream/ )
依賴(老師+書):

關聯(司機+車):

雙向關聯(老師+班級):

如果你覺得寫的不錯,歡迎轉載和點贊, 轉載時請保留作者署名jilodream/王若伊_恩賜解脫(博客鏈接:http://www.cnblogs.com/jilodream/
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/508129.html
標籤:設計模式
上一篇:設計模式之迭代器模式
