1. 为什么需要UML类图?
刚入行那会儿,我最怕的就是接到"设计个用户管理系统"这类需求。面对空白的IDE,经常陷入两种极端:要么直接开写代码导致后期改到崩溃,要么画一堆零散的方框最后自己都看不懂。直到 mentor 扔给我一本《UML精粹》,才明白类图就是解决这种困境的"设计蓝图"。
类图本质上是用图形化的方式描述系统中各个类的静态结构。就像建筑工地的施工图,它明确标注了"承重墙"(核心类)、"管道走向"(类关系)和"房间功能"(方法属性)。最近给电商平台做权限系统时,我们先用类图梳理出User、Role、Permission三个核心类,再确定它们之间的关联关系,最终编码阶段节省了至少40%的返工时间。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 类图基础元素拆解
2.1 类的三要素
在权限管理系统中,User类的标准表示是这样的:
java复制// 对应UML中的类表示
public class User {
// 属性区
private Long id;
private String username;
private String encryptedPassword;
// 操作区
public boolean verifyPassword(String input) {...}
public void assignRole(Role role) {...}
}
斜体提示:属性和操作前的可见性符号(+ public, - private, # protected)是团队协作时的关键约定,我曾经因为漏写这个导致同事误用了内部方法。
2.2 关系的四种类型
去年重构旧系统时,就踩过混淆聚合与组合的坑。原来的设计把Department和Employee做成组合关系(实心菱形),结果分支机构撤销时所有员工数据都被误删。正确做法应该是空心菱形的聚合关系:
code复制Department ◇—— Employee
关系类型速查表:
| 关系类型 | 箭头样式 | 代码表现 | 生命周期 |
|---|---|---|---|
| 关联 |
