PlantUML 怎么使用
时间: 2025-06-09 19:26:30 浏览: 4
### 如何使用 PlantUML 绘制 UML 类图的具体方法和步骤
PlantUML 是一种轻量级的工具,允许用户通过编写代码来生成 UML 类图。以下是具体的方法和实现方式:
#### 使用在线工具绘制 UML 类图
PlantUML 提供了在线工具,用户可以直接在浏览器中编写代码并生成类图。此方法简单快捷,适合初学者或临时需求[^1]。
```plaintext
@startuml
class Customer {
- id: int
- name: String
+ placeOrder(): void
}
@enduml
```
上述代码定义了一个名为 `Customer` 的类,并包含两个属性和一个方法。
#### 使用 IDEA 内置插件绘制 UML 类图
对于使用 IntelliJ IDEA 的开发者,可以通过安装 PlantUML 插件来快速绘制类图。安装完成后,选择 `File > New Diagram > PlantUML Diagram`,然后直接在编辑器中编写 PlantUML 代码[^2]。以下是一个简单的示例:
```plaintext
@startuml
class Order {
- orderId: int
- items: List<Item>
+ addItem(Item): void
+ removeItem(Item): void
}
class Item {
- itemId: int
- price: double
}
Order "1" -- "*" Item : contains
@enduml
```
此代码定义了两个类 `Order` 和 `Item`,并表示它们之间的关系为一对多关联。
#### 使用 PlantUML JAR 包生成 UML 类图
如果需要更灵活的环境配置,可以下载 PlantUML 的 JAR 包,并通过命令行生成类图。首先编写 PlantUML 代码文件(如 `example.puml`),然后运行以下命令[^1]:
```bash
java -jar plantuml.jar example.puml
```
生成的图片将保存为指定格式(如 PNG 或 SVG)。例如:
```plaintext
@startuml
interface List {
+ add(Object): boolean
+ remove(Object): boolean
}
abstract class AbstractList {
+ add(int, Object): void
+ remove(int): Object
}
AbstractList <|-- ArrayList
ArrayList : Object[] elementData
@enduml
```
#### 声明常见元素
PlantUML 支持多种 UML 元素的声明,包括类、接口、抽象类、枚举等。以下是一些常用的语法示例[^4]:
- **类**:`class ClassName { ... }`
- **接口**:`interface InterfaceName { ... }`
- **抽象类**:`abstract class AbstractClassName { ... }`
- **枚举**:`enum EnumName { VALUE1, VALUE2 }`
- **注解**:`annotation AnnotationName { ... }`
#### 定义关系
PlantUML 还支持定义类之间的关系,例如继承、关联、聚合和组合等。以下是一些常用的关系符号:
- **继承**:`A <|-- B` 表示 B 继承自 A。
- **关联**:`A --> B` 表示 A 和 B 存在某种关联。
- **聚合**:`A o-- B` 表示 A 聚合 B。
- **组合**:`A *-- B` 表示 A 组合 B。
### 示例代码
以下是一个完整的 PlantUML 类图示例:
```plaintext
@startuml
class User {
- id: int
- name: String
+ login(): boolean
}
abstract class AbstractRepository {
+ save(Object): void
+ delete(Object): void
}
interface Repository {
+ findAll(): List<Object>
}
abstract class AbstractUserRepository {
+ findByUsername(String): User
}
AbstractRepository <|-- AbstractUserRepository
AbstractUserRepository --|> Repository
AbstractUserRepository "1" -- "*" User : manages
@enduml
```
阅读全文
相关推荐

















