框中的符號
+ public
- private
# protected
~ default
_ static
斜體 抽象
圖示
關聯、聚合、組合:可以帶箭頭,也可以不帶監聽
關係說明
繼承
、實現
很清晰,表示兩個類的歸屬關係。
依賴
、關聯
、聚合
、組合
的界限並不清晰,它們表示兩個類的引用關係,關係強弱:依賴 < 關聯 < 聚合 < 組合。
對比說明:
- 依賴
- 臨時變量、方法參數
- A 需要
臨時
用到 B 的功能 - 如人與杯子
- 關聯
- 成員變量
- A 需要
長期
用到 B 的功能 - 如人與眼鏡
- 聚合
- 成員變量
- A 需要 B 作爲自己的
組成部分
,B可以獨立存在
,可以屬於他人 - 如人與衣服、雁羣與大雁、公司與員工、汽車與輪胎
- 組合
- 成員變量
- A 需要 B 作爲自己的
組成部分
,B不可以獨立存在
,獨屬於 A - 如人與胳膊、鳥與翅膀、公司與部門
A 與 B 究竟是哪種關係,主要看編碼者如何設計,即編碼者認爲他們是什麼關係。比如人與衣服:
如果設計裏這個人是一個普通的人,那衣服與人只是聚合關係。
如果設計裏這個人是一個體面的人,那衣服與人就是組合關係。