UML 類別圖是物件導向分析與設計的標準視覺化工具。本文以一個繪圖應用程式 CDrawApp 為例,示範如何從需求出發,繪製類別圖並對應至 Java 實作,涵蓋類別結構、關聯、繼承、多型等核心概念。
- private、+ public、# protected<<interface>>系統包含 10 個主要類別,核心如下:
x、y、多載建構子、存取器、add()、toString()draw()、move() 等抽象方法Shape,實作具體繪製邏輯addShape()、paint()AddCommand、MoveCommand 等,支援 Undo/Redo
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 + ")"; }
}
透過系統化的 UML 類別圖設計,能讓團隊對系統架構建立共同理解,減少溝通成本,並為後續開發、重構、文件化奠定堅實基礎。