1. UML類(lèi)圖
類(lèi)圖用于描述系統(tǒng)所包含的類(lèi)和類(lèi)之間的相互關(guān)系
1.1 類(lèi)的圖示
類(lèi)的屬性及其表示
- private使用 -
- protected使用 #
- public使用 +
- package使用 ~
1.2 接口
正好復(fù)習(xí)一下接口的特性:
- 接口不能被實(shí)例化
- 實(shí)現(xiàn)類(lèi)可以實(shí)現(xiàn)多個(gè)接口
- 實(shí)現(xiàn)類(lèi)必須實(shí)現(xiàn)接口所有方法(抽象類(lèi)除外)
- 接口中的常量都是靜態(tài)常量
2. 類(lèi)間關(guān)系
2.1 依賴(lài)關(guān)系-Dependence
假設(shè)A類(lèi)的改變影響了B類(lèi)桐腌,那么B類(lèi)就依賴(lài)于A類(lèi)
特定事物改變可能影響到使用該事物的其他事物
什么時(shí)候用到依賴(lài)關(guān)系?
- A類(lèi)實(shí)例作為B類(lèi)方法的參數(shù)
- A類(lèi)實(shí)例作為B類(lèi)方法的局部變量
- B類(lèi)調(diào)用A類(lèi)的靜態(tài)方法
依賴(lài)關(guān)系的UML圖示
箭頭由依賴(lài)方指向被依賴(lài)方苟径,如下就是Driver依賴(lài)于Car類(lèi)案站。
2.2 關(guān)聯(lián)關(guān)系-Dependence
一個(gè)類(lèi)對(duì)象與另一個(gè)類(lèi)對(duì)象有聯(lián)系,在C++/Java等實(shí)現(xiàn)中棘街,通常將一個(gè)類(lèi)的對(duì)象作為另一個(gè)類(lèi)的屬性蟆盐。
2.2.1 雙向關(guān)聯(lián)
默認(rèn)情況下,關(guān)聯(lián)關(guān)系都是雙向的蹬碧。
exp:數(shù)據(jù)庫(kù)管理員管理數(shù)據(jù)庫(kù)舱禽,某些數(shù)據(jù)庫(kù)被特定管理員管理
exp:用戶(hù)對(duì)應(yīng)對(duì)個(gè)訂單,訂單對(duì)應(yīng)特定用戶(hù)
2.2.2 單向關(guān)聯(lián)
一方持有另外一方的實(shí)例恩沽,如學(xué)生對(duì)應(yīng)成績(jī)表誊稚、用戶(hù)表的地址對(duì)應(yīng)地址表
2.2.3 自關(guān)聯(lián)
類(lèi)的屬性類(lèi)型為類(lèi)本身,如鏈表、樹(shù)結(jié)構(gòu)
2.2.4 多重性關(guān)聯(lián)-Multiplicity
兩對(duì)象在數(shù)量上對(duì)應(yīng)的關(guān)系里伯,如一對(duì)多城瞎、多對(duì)一、多對(duì)多等
2.2 聚合關(guān)系
表示整體與部分的關(guān)系疾瓮,部分可以脫離整體存在脖镀,如圖書(shū)館和圖書(shū)。
通常都是定義了一個(gè)整體狼电,然后去思考它的內(nèi)部結(jié)構(gòu)蜒灰,就會(huì)發(fā)現(xiàn)一些成員類(lèi),這些成員類(lèi)與整體的關(guān)系就是聚合關(guān)系肩碟。
從代碼實(shí)現(xiàn)角度强窖,部分對(duì)象不由整體對(duì)象創(chuàng)建,而是通過(guò)整體對(duì)象的帶參構(gòu)造函數(shù)或者set方法傳入削祈。
表現(xiàn)方式:整體指向部分翅溺,空心菱形靠近整體
2.3 組合關(guān)系
也是整體與部分之間的關(guān)系,但是整體會(huì)影響到部分的生存周期髓抑,只要整體對(duì)象不存在了咙崎,部分對(duì)象也隨之消亡。如吨拍,公司和部門(mén)褪猛、貓和貓的腿
表現(xiàn)形式:整體指向部分,實(shí)心菱形靠近整體
2.4 泛化關(guān)系/繼承關(guān)系
用于描述父類(lèi)和子類(lèi)之間的關(guān)系密末,如Teacher繼承People等
表現(xiàn)形式:帶有空心三角形的實(shí)線(xiàn)指向父類(lèi)
2.5 實(shí)現(xiàn)關(guān)系
接口與實(shí)現(xiàn)接口的類(lèi)之間的關(guān)系握爷。
表現(xiàn)形式:帶空心三角形的虛線(xiàn)指向接口
參考資料:
UML圖中類(lèi)之間的關(guān)系:依賴(lài),泛化,關(guān)聯(lián),聚合,組合,實(shí)現(xiàn)
UML(一) 類(lèi)圖詳解