統一建模語言UML---類圖

什麼是統一建模語言,來看看百科中的介紹
統一建模語言(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/ )

依賴(老師+書):

 

關聯(司機+車):

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章