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

UML 類別圖實戰:從設計到 Java 程式碼的完整流程

     編輯:Java 相關知識

UML 類別圖是物件導向分析與設計的標準視覺化工具。本文以一個繪圖應用程式 CDrawApp 為例,示範如何從需求出發,繪製類別圖並對應至 Java 實作,涵蓋類別結構、關聯、繼承、多型等核心概念。

類別圖基本符號

  • 三層矩形:類別名(粗體)、屬性(變數)、操作(方法)
  • 可視性:- private、+ public、# protected
  • 抽象類別/方法:斜體字;介面:標註 <<interface>>
  • 關聯線:實線箭頭(關聯)、空心三角形實線(繼承)、虛線箭頭(相依)、菱形(聚合/組合)

案例:CDrawApp 類別架構

系統包含 10 個主要類別,核心如下:

  1. Point:座標點,含 x、y、多載建構子、存取器、add()、toString()
  2. Shape(抽象):繪圖基類,定義 draw()、move() 等抽象方法
  3. Dot、Box、TextShape:繼承 Shape,實作具體繪製邏輯
  4. Canvas:管理形狀集合,提供 addShape()、paint()
  5. Command 介面與實作:AddCommand、MoveCommand 等,支援 Undo/Redo
  6. CDrawApp:主程式,整合 UI、命令解析、畫布管理

Point 類別圖與 Java 實作對照

Point 類別圖

public class Point {
    private int x, y;

    public Point() { this(0, 0); }
    public Point(int x, int y) { this.x = x; this.y = y; }
    public Point(Point p) { this(p.x, p.y); } // 複製建構子

    public int getX() { return x; }
    public void setX(int x) { this.x = x; }
    public int getY() { return y; }
    public void setY(int y) { this.y = y; }

    public Point add(int dx, int dy) { return new Point(x + dx, y + dy); }
    public Point add(Point p) { return new Point(x + p.x, y + p.y); }

    @Override
    public String toString() { return "(" + x + ", " + y + ")"; }
}

從類別圖產生程式碼的關鍵步驟

  1. 識別領域概念,定義類別與屬性
  2. 建立關聯、繼承、介面關係
  3. 設計方法簽章,標註可視性與拋出例外
  4. 使用工具(如 Eclipse Modeling、StarUML)正向工程產生骨架碼
  5. 填充業務邏輯,撰寫單元測試驗證

最佳實務建議

  • 類別圖保持適當抽象層級,避免過度細節導致維護困難
  • 命名遵循領域術語,統一專案術語表
  • 定期同步圖說與程式碼,防止設計腐化
  • 善用顏色、標記區分層級(實體、控制、邊界)

透過系統化的 UML 類別圖設計,能讓團隊對系統架構建立共同理解,減少溝通成本,並為後續開發、重構、文件化奠定堅實基礎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved