对象图:实例快照

对象图:实例快照

puml.online

简介 / Introduction

对象图(Object Diagram)记录系统在某一运行时刻的具体实例及其属性值,是类图的结构快照。相比类图展示抽象的类型与关系,对象图关注”此时此刻有哪些真实的实例,各自的状态是什么”。PlantUML 有原生的 objectdiagram,Mermaid 则用类图语法近似表达。

PlantUML 版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@startuml
object "Alice (ID:001)" as A {
name = Alice
role = Admin
active = true
}
object "Bob (ID:002)" as B {
name = Bob
role = Editor
active = false
}
object "Order #20261020" as O {
id = 20261020
status = shipped
}

A --> O : places
B --> O : reviews
@enduml

PlantUML 的 object 关键字直接声明实例,as 起别名,大括号内写属性名 = 值,多个实例之间用 -->. 实例名可加引号包裹,冒号后为显示标签。

Mermaid 版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
classDiagram
class User {
+String name
+String role
+Boolean active
}
class Order {
+Integer id
+String status
}
User "2" o-- "1" Order : places
User "1" ..> "1" Order : reviews
note for User "Alice(role=Admin)\nBob(role=Editor)"
note for Order "id=20261020\nstatus=shipped"

Mermaid 没有独立的对象图类型,用 classDiagram 配合 note 附加实例的具体值。多重性("2" / "1")标注同一类型的多个实例,属性列表展示字段名。

对比 / Side-by-side

特性 PlantUML Mermaid
语法标记 objectdiagram classDiagram
实例声明 object "标签" as 别名 类自身(note 附实例值)
属性写法 属性名 = 值 +属性名: 类型(型注,非实例值)
链接语法 --> / -->> o-- / ..>
多实例表达 直接写多个 object 类 "N" 标注数量
实例值展示 块内直接写 name = Alice note for X 附加

小结 / Wrap-up

PlantUML 的 objectdiagram 是最直接的表达方式,适合需要精确展示运行时快照的场景。Mermaid 用类图加 note 近似实现,胜在与其他 Mermaid 图共用一套渲染器,属性只能标注类型而非具体值。两者结合理解,有助于在设计阶段用类图建模,在调试阶段用对象图还原真实运行状态。

  • 标题: 对象图:实例快照
  • 作者: puml.online
  • 创建于 : 2026-10-20 09:00:00
  • 更新于 : 2026-10-20 01:07:18
  • 链接: https://puml.online/blog/object-diagram-instances/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。