PlantUML 是一个开源工具,可以用来绘制时序图、用例图、类图、活动图、组件图、状态图等。它使用一种简单的文本语言来定义图形,然后转换成实际的图形。下面是一个使用 PlantUML 创建一个简单的类图的示例:
首先,你需要安装 PlantUML。你可以从 PlantUML 的官方网站下载,或者使用 Java 的包管理工具 Maven 或 Gradle 来安装。
安装完成后,你可以创建一个文本文件,比如叫 example.puml
,然后输入以下内容:
@startuml
class User {
+String name
+Integer age
+void setName(String name)
+String getName()
+void setAge(Integer age)
+Integer getAge()
}
class Order {
+User user
+List<Item> items
+void setUser(User user)
+User getUser()
+void addItem(Item item)
+List<Item> getItems()
}
class Item {
+String name
+Double price
+void setName(String name)
+String getName()
+void setPrice(Double price)
+Double getPrice()
}
User "1" -- "0..*" Order : places
Order "1" -- "0..*" Item : contains
@enduml
这个文件定义了三个类:User
、Order
和 Item
,以及它们之间的关系。User
类有一个名字和一个年龄,Order
类有一个用户和多个 Item
,而 Item
类有一个名字和一个价格。User
和 Order
之间的关系是 “一个用户可以下多个订单”,而 Order
和 Item
之间的关系是 “一个订单可以包含多个商品”。
保存文件后,你可以使用 PlantUML 的命令行工具或者支持 PlantUML 的编辑器(如 Visual Studio Code、Sublime Text 等)来生成实际的图形。如果你使用命令行,可以运行以下命令:
java -jar plantuml.jar example.puml
这将生成一个名为 example.png
的图片文件,其中包含了你定义的类图。
时序图示例
@startuml
actor "User" as user
participant "Database" as db
user ->> db : Query Data
activate db
db -->> user : Data
deactivate db
@enduml
用例图示例
@startuml
left to right direction
actor "User" as user
usecase "Login" as UC1
usecase "Logout" as UC2
user --> UC1
user --> UC2
@enduml
活动图示例
@startuml
start
:Request processed;
->choice
if (response == 200?) then (yes)
:Success action;
else
:Error action;
endif
stop
@enduml
状态图示例
@startuml
[*] --> Active
state Active {
[*] --> Idle
Idle --> Busy : doWork()
Busy --> Idle : completeWork()
Busy --> Active : deactivate()
}
Active --> [*]
@enduml
每个示例都是使用 PlantUML 的文本语言编写的,您可以将这些文本保存为 .puml
文件,并使用 PlantUML 工具生成相应的图形。这些图例展示了 PlantUML 在不同场景下的应用,包括用户与数据库的交互、用户的登录和登出用例、处理请求的活动以及一个简单的状态转换。