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

UML 類圖設計 Java 應用實戰(一):核心類建模與關係分析

     編輯:Java 相關知識

UML 類圖基礎標記法

類圖用三層矩形框表示:

  • 頂層:類名(粗體)。抽象類用斜體;介面標註 <<interface>>。
  • 中層:屬性(格式:可見性 名稱:類型 [多重性] = 預設值)。
  • 底層:方法(格式:可見性 名稱(參數):回傳類型)。抽象方法斜體。

可見性:+ public、- private、# protected、~ package-private。

案例應用:CDrawApp 字符網格繪圖程式

在字符網格上繪製點、矩形、文字串。共 10 大類,本篇完成前 5 類。

1. Point 類:座標封裝

Point 類圖

  • 屬性:-x:int、-y:int。
  • 三個建構子(多載):Point()、Point(int x, int y)、Point(Point p)。
  • 7 個存取方法:getX()、setX()、add(int dx) 等。
  • toString() 返回 "(x, y)" 格式。

Point 類代碼

2. CGrid 類:字符網格基礎設施

CGrid 類圖

  • 屬性:#width:int、#depth:int、#grid:char[][](protected 供子類存取)。
  • 單一建構子初始化尺寸、配置陣列、填充空格。
  • 4 核心方法:blankGrid()、fillGrid(char)、getCharFrom(Point)、setCharAt(Point, char)。
  • 與 Point 為關聯關係(CGrid 方法參數使用 Point)。

CGrid 類代碼

3. CGObject 類:可繪製物件抽象基類

CGObject 類圖

  • 屬性:#location:Point、#drawCharacter:char。
  • 無建構子(抽象類不可實例化)。
  • 方法:addToGrid(PrintCGrid)(具體)、display(PrintCGrid)(抽象)、describe()(抽象)。
  • 子類必須實現 display()、describe()。

CGObject 類代碼

4. PrintCGrid 類:可管理物件的網格

PrintCGrid 類圖

  • 繼承 CGrid(實線空心三角箭頭指向父類)。
  • 新增屬性:#displayList:CGObject[]、#maxObjects:int (static final = 100)、#numObjects:int。
  • 建構子調用 super(x, y) 初始化父類,再初始化陣列與計數器。
  • 10 管理方法:addCGObject()、deleteCGObject()、drawGrid()、displayGrid()、show() 等。
  • displayList 宣告為 CGObject[] 實現多態:實際存儲子類實例。

PrintCGrid 類代碼

5. BorderedPrintCGrid 類:帶邊框網格

BorderedPrintCGrid 類圖

  • 繼承 PrintCGrid,新增邊框屬性:-useBorder:boolean、-borderCharacter:char、-horizEdge:String、-vertEdge:String。
  • 兩個建構子(預設 75×20 '*' 邊框 / 自訂尺寸字符)。
  • 覆寫 displayGrid():先呼叫 super.displayGrid() 再繪製邊框。

BorderedPrintCGrid 類代碼

前 5 類關係總覽

繼承鏈:CGrid ← PrintCGrid ← BorderedPrintCGrid

關聯關係:

  • CGrid → Point(方法參數,多重性 0..*)。
  • PrintCGrid → CGObject(陣列元素,多重性 0..*)。

前5類關係總圖

建模價值

  • 視覺化呈現靜態結構,溝通零歧義。
  • 標準化文檔,新成員快速上手。
  • 模型驅動代碼生成骨架,專注業務邏輯填充。
  • 變更影響分析:修改類圖即可評估波及範圍。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved