泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴
關系:is-a(繼承/實現)
箭頭:實線空心三角箭頭,指向父類/接口
場景:類繼承類、接口繼承接口、類實現接口

關系:use-a(臨時/弱關聯)
箭頭:虛線箭頭,指向被依賴類
代碼表現:方法參數、局部變量、靜態方法調用
特點:單向、易變、盡量減少

關系:has-a(長期/結構性)
箭頭:實線箭頭(單向)或無箭頭(雙向)
代碼表現:成員變量(字段)
分類:單向關聯(推薦,低耦合)、雙向關聯

關系:整體-部分,弱擁有(部分可獨立存在)
箭頭:實線空心菱形,菱形在整體端
代碼表現:成員變量,但部分對象可在整體創建前/後獨立構造
生命周期:部分 ≠ 整體

關系:整體-部分,強擁有(部分不可獨立)
箭頭:實線實心菱形,菱形在整體端
代碼表現:成員變量,部分在整體構造時創建,整體銷毀時銷毀
生命周期:部分 = 整體

| 關系 | 語義 | 代碼體現 | 生命周期 | UML 符號 |
|---|---|---|---|---|
| 依賴 | use-a | 參數/局部變量/靜態調用 | 臨時 | 虛線箭頭 |
| 關聯 | has-a | 成員變量 | 獨立 | 實線箭頭 |
| 聚合 | 整體-部分(弱) | 成員變量,部分可外部傳入 | 部分獨立 | 空心菱形 |
| 組合 | 整體-部分(強) | 成員變量,內部 new 部分 | 部分隨整體 | 實心菱形 |
| 泛化 | is-a | extends/implements | 子依賴父 | 空心三角箭頭 |