类图:包与命名空间

类图:包与命名空间

puml.online

简介 / Introduction

类图不仅描述类之间的关系,也用包(Package)命名空间(Namespace) 来组织模型元素,形成分层结构。本文用同一个场景对比 PlantUML 与 Mermaid 的包/命名空间语法,展示两者的异同。

PlantUML 版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package "com.example.app" {
class MyClass
class Helper
}

package "com.example.lib" {
class Service
class Dao
}

MyClass --> Service : uses
MyClass --> Dao : queries
Helper --> Service

package "com.example.util" {
class StringUtils
}

Service ..> StringUtils : imports

PlantUML 用 package "名称" { ... } 包裹一组类,支持嵌套、添加图标和颜色,并通过箭头表达依赖关系。

Mermaid 版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
classDiagram
namespace com.example.app {
class MyClass {
+void doWork()
}
class Helper {
+void assist()
}
}

namespace com.example.lib {
class Service {
+void process()
}
class Dao {
+void fetch()
}
}

namespace com.example.util {
class StringUtils {
+static String format()
}
}

MyClass --> Service : uses
MyClass --> Dao : queries
Helper --> Service
Service ..> StringUtils : imports

Mermaid 用 namespace 名称 { ... } 分隔同名空间下的类,类体内可写成员方法(可选),依赖关系同样用箭头表示。

对比 / Side-by-side

特性 PlantUML Mermaid
包/命名空间关键字 package "名称" { } namespace 名称 { }
类成员写法 直接在块内写 class ClassName 需要在类体内用 +method() 形式写
嵌套包 支持,多层 package 嵌套 不直接支持,需用命名空间层级模拟
依赖箭头 --> / ..> / `< –`
颜色/图标 支持 package "name" #Pink 不支持

小结 / Wrap-up

PlantUML 的包语法更丰富,支持嵌套、颜色和图标,适合正式建模;Mermaid 的 namespace 简洁直观,适合文档和轻量图表。两者的依赖箭头语法几乎一致,互学成本低。

  • 标题: 类图:包与命名空间
  • 作者: puml.online
  • 创建于 : 2026-09-03 09:00:00
  • 更新于 : 2026-09-03 01:06:42
  • 链接: https://puml.online/blog/class-diagram-packages/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。