PlantUML——类图(持续更新)
  gP51aCLgasca 2023年11月02日 52 0


前言

在分析代码流程中,我们常常会使用到各种UML图,例如用例图、时序图和类图等,以往使用ProcessOn或亿图图示等工具,但是这些工具难以规范化,有没有一种用代码来生成图形的工具呢?
刚好在出差的晨会中机缘巧合下认识了PlantUML,这不赶快学习一波。该博文用于记录自己的常用项,用于快速生成UNL图形。
plantuml官网

类元素

接口

用关键字interface来定义接口。

@startuml
interface List
@enduml

PlantUML——类图(持续更新)_泛化

抽象类

用关键字abstractabstract class来定义抽象类。抽象类用斜体显示。

@startuml
abstract class AbstractList
abstract AbstractCollection
@enduml

PlantUML——类图(持续更新)_抽象类_02

枚举

enum来定义枚举。

@startuml
enum TimeUnit {
  DAYS
  HOURS
  MINUTES
}
@enduml

PlantUML——类图(持续更新)_PlantUML_03

访问控制

针对属性和方法的可访问性控制。属性是空心的,方法是实心的。

可访问性

字符

图标(属性)

图标(方法)

public

+

PlantUML——类图(持续更新)_List_04

PlantUML——类图(持续更新)_泛化_05

protected

#

PlantUML——类图(持续更新)_泛化_06

PlantUML——类图(持续更新)_泛化_07

private

-

PlantUML——类图(持续更新)_泛化_08

PlantUML——类图(持续更新)_抽象类_09

属性和成员函数

@startuml
class Dummy {
 +int field0;
 #string field1;
 -double field2;
 
 +void method0();
 #double method1();
 -char method2();
}
@enduml

PlantUML——类图(持续更新)_抽象类_10

类关系

关系的强弱:泛化>实现>组合>聚合>关联>依赖。

关系

符号

展示

泛化

<|-

PlantUML——类图(持续更新)_泛化_11

实现

<|.

PlantUML——类图(持续更新)_泛化_12

组合

*-

PlantUML——类图(持续更新)_抽象类_13

聚合

o-

PlantUML——类图(持续更新)_List_14

关联

<-

PlantUML——类图(持续更新)_UML_15

依赖

<.

PlantUML——类图(持续更新)_UML_16

箭头方向

--..代表垂直方向;-.代表水平方向。或者在--..之前使用leftrightupdown来指定方向。

注释

'开头的行为注释。

'https://plantuml.com/sequence-diagram

后记

随着对复杂问题的处理,结合图形能做到事半功倍的效果。可笑的是在上学期间对这些敬而远之,而如今缺仿佛如获至宝。果然个人的局限性以及教育的滞后性会让人感慨万分。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
gP51aCLgasca