首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

UML 類圖完全指南:類、接口、六大關係與多重性標記法

     編輯:Java 綜合教學

UML 類圖完全指南:類、接口、六大關係與多重性標記法

UML 類圖是面向對象設計的通用建模語言。本文以《大話設計模式》經典範例為基礎,系統講解類/接口圖元符號、六類核心關係(繼承、關聯、聚合、組合、依賴、實現)、多重性標記、棒棒糖表示法,助你精準表達領域模型。

一、類圖基本構成

類圖三層結構

層級內容符號約定
第一層類名抽象類用斜體;<<interface>> 標記接口
第二層屬性/字段可見性 名稱: 類型 [多重性] = 默認值
第三層方法/操作可見性 名稱(參數列表): 返回類型

可見性符號:+ public | - private | # protected | ~ package

二、接口圖兩種表示法

  1. 標準類圖風格:頂部標記 <<interface>>,方法為斜體(抽象)
    接口標準表示
  2. 棒棒糖表示法 (Lollipop):實線連接圓圈,圓圈標註接口名,強調「提供接口」
    棒棒糖表示法

    例:唐老鴨實現「講人話」接口 → 棒棒糖連接唐老鴨類

三、六大核心關係詳細解析

關係UML 符號語義強度代碼映射經典例子
繼承空心三角形 + 實線最強 (is-a)class Child extends Parent動物 → 鳥 → 鴨 → 唐老鴨
實現空心三角形 + 虛線強 (is-a)class Impl implements Interface大雁實現飛翔、唐老鴨實現講人話
關聯實線箭頭中 (knows-a)成員變量引用企鵝「知道」氣候變化
聚合空心菱形 + 實線中弱 (has-a)集合/數組成員,生命週期獨立公司 ↔ 員工、雁群 ↔ 大雁
組合實心菱形 + 實線強 (contains-a)成員變量,生命週期綁定公司 ↔ 部門、鳥 ↔ 翅膀、訂單 ↔ 訂單項
依賴虛線箭頭最弱 (uses-a)方法參數/局部變量/靜態方法調用工具類、臨時計算

關係圖示

繼承:繼承關係

關聯:關聯關係

聚合:聚合關係

組合:組合關係

依賴:依賴關係

實現:實現關係

四、多重性標記

在關聯/聚合/組合線端標註:

符號含義
1恰好一個
0..1零個或一個
* 或 0..*零個到多個
1..*一個到多個
n..mn 到 m 個

例:一隻鳥 2 只翅膀(組合端標 2),一個雁群 1..* 只大雁(聚合端標 1..*)

五、關係選型決策樹

  1. 是「是一種」關係? → 繼承/實現
  2. 否 → 是「整體-部分」?
    • 部分離開整體無法存在? → 組合 (實心菱形)
    • 部分可獨立存在? → 聚合 (空心菱形)
  3. 否 → 是「長期持有引用」? → 關聯 (實線箭頭)
  4. 否 → 是「臨時使用」? → 依賴 (虛線箭頭)

六、常見建模錯誤

  • ❌ 將「依賴」畫成「關聯」:方法參數不應成成員變量
  • ❌ 濫用組合:員工離職公司仍在 → 應為聚合
  • ❌ 忽略多重性:1 對 多 vs 多對多未標註
  • ❌ 箭頭方向反:聚合/組合菱形指向整體
「模型不是文檔,是思考工具。」精準的類圖能暴露設計缺陷,指導重構方向。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved