天天看點

設計模式學習起點 UML類圖筆記參考 看懂UML類圖和時序圖

uml定義類之間的關系主要有六種:泛化關系、實作關系、依賴關系、關聯關系、聚合關系群組合關系。下面分别學習這幾種關系。

使用帶空心三角形的實線表示。

汽車與suv之間為泛化關系:

設計模式學習起點 UML類圖筆記參考 看懂UML類圖和時序圖

泛化關系相當于面向對象中的繼承關系。最終代碼中,泛化關系表現為繼承非抽象類。

使用帶空心三角形的虛線表示。

最終代碼中,實作關系表現為繼承抽象類。

”車”為一個抽象概念,在現實中并無法直接用來定義對象;隻有指明具體的子類(汽車還是自行車),才可以用來定義對象:

設計模式學習起點 UML類圖筆記參考 看懂UML類圖和時序圖

使用帶箭頭的虛線表示。

依賴是一種最弱的橫向關系。假設a類的變化引起了b類的變化,則稱b依賴于a。表現在代碼上依賴關系一般有如下三種情況:

a類是b類中(某個方法)的局部變量。

a類是b類中某個方法的參數。

a類向b類發送消息,進而影響b類變化。

使用實線表示(可帶箭頭)。

乘車人和車票之間就是一種關聯關系;學生和學校就是一種關聯關系;

從依賴——>關聯——>聚合——>組合,可以認為是聯系逐漸加強的,組合關系最強調依賴。

使用帶空心棱形的實線表示。

聚合關系用于表示實體對象之間的關系,表示整體由部分構成的語義;例如一個部門由多個員工組成。

使用帶實心棱形的實線表示。

比如公司由多個部門組成;

相比聚合關系來說,組合關系是一種強依賴的特殊聚合關系,如果整體不存在了,則部分也不存在了;例如, 公司不存在了,部門也将不存在了,

但是聚合關系的依賴性較弱,部門不在了,員工依然存在。

 以下這個類圖,類之間的關系是我們需要關注的:
設計模式學習起點 UML類圖筆記參考 看懂UML類圖和時序圖
車的類圖結構為<<abstract>>,表示車是一個抽象類; 它有兩個繼承類:小汽車和自行車;它們之間的關系為實作關系,使用帶空心箭頭的虛線表示; 小汽車為與suv之間也是繼承關系,它們之間的關系為泛化關系,使用帶空心箭頭的實線表示; 小汽車與發動機之間是組合關系,使用帶實心箭頭的實線表示; 學生與班級之間是聚合關系,使用帶空心箭頭的實線表示; 學生與身份證之間為關聯關系,使用一根實線表示; 學生上學需要用到自行車,與自行車是一種依賴關系,使用帶箭頭的虛線表示;

繼續閱讀