前言

这个可以用来建模,不过现在的建模都是用更加专业的工具来做复杂的建模。

这个可以用来表现一些基础的数据解构关系还是不错的。

我们从一个例子贯穿全文!

基础语法

属性修饰符

修饰符 解释
+ Public(开放属性)
- Private(私有属性)
# Protected(受保护)
~ Package(包|模块)

表现修饰符

修饰符 解释
<!— Inheritance(继承)
*__ Composition(组合函数,可以理解为 mixin)
o— Aggregation(聚合)
—> Association(关联|联系)
Link(链接)

关系修饰符

修饰符 解释
0..1 0或1
1 只有1
1..* 1或无限
* 无限多
n 至少大于1
0..n n 大于1时侯,0到 n 个
1..n n 大于1时侯,1到 n 个

基础声明

  1. classDiagram
  2. <|-- 亚洲人
  3. <|-- 日本人
  4. -- 美国人
  5. : +int 年龄
  6. : +String 性别
  7. 人: +Boolean 是否存活
  8. 亚洲人 "1" --> "1" 日本人
  9. class 亚洲人{
  10. +String 黄皮肤
  11. +Array 文化多种多样
  12. }
  13. class 日本人{
  14. -Boolean 人口老龄化严重
  15. -Boolean 女性肤白貌美
  16. #Boolean 萌妹子出口
  17. ~Boolean 大部分文化从大中华进口
  18. }
  19. class 美国人{
  20. ~Boolean 横行霸道
  21. ~Boolean 随意干涉他国内政
  22. #String 心算能力就是个渣(美名其曰我们推崇工具)
  23. }

Class diagrams(类图) - 图1

接口及枚举声明

接口使用的修饰符<<interface>>

枚举使用的修饰符<<enumeration>>

  1. classDiagram
  2. class Shape{
  3. <<interface>>
  4. noOfVertices
  5. draw()
  6. }
  7. class Color{
  8. <<enumeration>>
  9. RED
  10. BLUE
  11. GREEN
  12. WHITE
  13. BLACK
  14. }

Class diagrams(类图) - 图2

总结

这图我基本不用,用这个来建模太痛苦,表现力也不是很完美。

建模还是得用专业的建模工具来表现,不仅仅表现上,维护上和可读性上都碾压。