[ PROMPT_NODE_23346 ]
class-diagrams
[ SKILL_DOCUMENTATION ]
# 类图
类图用于建模面向对象设计和领域模型。它们展示了实体(类)、它们的属性/方法以及关系。
## 基本语法
mermaid
classDiagram
ClassName
## 定义带有成员的类
mermaid
classDiagram
class BankAccount {
+String owner
+Decimal balance
-String accountNumber
+deposit(amount)
+withdraw(amount)
+getBalance() Decimal
}
**可见性修饰符:**
- `+` 公有 (Public)
- `-` 私有 (Private)
- `#` 受保护 (Protected)
- `~` 包/内部 (Package/Internal)
**成员语法:**
- `+type attribute` - 带类型的属性
- `+method(params) ReturnType` - 带参数和返回类型的方法
## 关系
### 关联 (Association, `--`)
松散关系,实体相互使用但独立存在。
mermaid
classDiagram
Title -- Genre
### 组合 (Composition, `*--`)
强所有权 - 子类不能脱离父类存在。当父类被删除时,子类也会被删除。
mermaid
classDiagram
Order *-- LineItem
House *-- Room
### 聚合 (Aggregation, `o--`)
较弱的所有权 - 子类可以独立存在。表示“拥有”关系。
mermaid
classDiagram
Department o-- Employee
Playlist o-- Song
### 继承 (Inheritance, `<|--`)
“是一种”关系。子类继承自父类。
mermaid
classDiagram
Animal <|-- Dog
Animal <|-- Cat
class Animal {
+String name
+makeSound()
}
class Dog {
+bark()
}
### 依赖 (Dependency, `<..`)
一个类依赖于另一个类,通常作为参数或局部变量。
mermaid
classDiagram
OrderProcessor <.. PaymentGateway
### 实现 (Realization/Implementation, `<|..`)
类实现一个接口。
mermaid
classDiagram
class Drawable {
<>
+draw()
}
Drawable <|.. Circle
Drawable "0..*" Order : 下单
Order "1" *-- "1..*" LineItem : 包含
Author "1..*" -- "1..*" Book : 编写
**常见多重性:**
- `1` - 恰好一个
- `0..1` - 零个或一个
- `0..*` 或 `*` - 零个或多个
- `1..*` - 一个或多个
- `m..n` - m 到 n 个之间
## 关系标签
mermaid
classDiagram
Customer --> Order : 下单
Order --> Product : 包含
Driver --> Vehicle : 驾驶
## 类构造型 (Stereotypes)
标记特殊类类型:
mermaid
classDiagram