記憶技巧:
箭頭的一方為被動方(被調用者);
箭頭的端點為主動方(調用者)。
箭頭為封閉三角形時,表示類間關系
箭頭為半封閉尖括號時,表示類內關系。其中,虛線表示參數強制依賴關系,實線表示屬性關系。一對一的有:依賴、關聯;多對一的有聚合、組合
對於繼承(實現):子類(實現)是主動方,父類(接口)是被動方
UML 有幾種關系圖標:泛化(繼承),實現,依賴,關聯,聚合,組合
- 泛化(繼承) B——▷A B 類作為 A 類的子類存在。
- 實現 B------▷A B 類實現 A 接口。
- 依賴 A------>B B 類作為 A 類某個方法的參數,表示A想做某些事情需要依賴 B,不然做不成。虛線參數強依賴。
- 關聯 A——>B(單向) B 類作為 A 類的屬性存在,語義上 A 類和 B 類的地位或水平相等。實現屬性若關聯
A—— B(雙向) B 類作為 A 類的屬相存在, A 類作為 B 類的屬性存在,語義上 A 類和 B 類的地位或水平相等。
- 聚合 A♢——>B B 類作為 A 類的屬性存在,語義上 B 類可作為 A 類的一部分,這個關系可有可無,是A has--a B 的關系,如房子(A),桌子(B)
- 組合 A♦——>B B 類作為 A 類的屬性存在,語義上 B 類是 A 類的一部分,這部分必須有,是 A contain--a B 的關系,如(人),大腦(B)。
一般情況下,繼承和實現比較簡單,就是其他幾個關系會有點小復雜。
