markdown语法在线画类图--plantuml

本文介绍了如何使用PlantUML在线绘制类图,包括访问权限、关系和域等概念。通过在线编辑网址,用户可以方便地生成并修改UML类图,将其嵌入Markdown文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


那么下面介绍一种可以在Markdown中使用的绘制UML工具 —— PlantUML

PlantUML简介

可以登陆PlantUML官网看一下,里面有支持的UML类型以及使用方法。

plantuml绘制类图的语法:
https://plantuml.com/zh/class-diagram

在线编辑网址:
https://www.planttext.com/

在这里插入图片描述

上面提供了不单单是类图的很多例子。

使用方法

打开在线作图网址,在上面的代码框里面输入代码。
完成后点击 Submit 按钮提交查看预览图,同时在预览图下面的 URL 地址框里面会有生成的 UML 图的 png 地址图,当然你也可以选择生成 SVG 或者 ASCII Art。把这个图片地址复制到 Markdown 就可以使用了。
比如:

@startuml
Title "BundleLauncher类图"
interface BundleExtractor
abstract class BundleLauncher
abstract class SoBundleLauncher
abstract class AssetBundleLauncher

BundleLauncher <|-- ActivityLauncher
BundleLauncher <|-- SoBundleLauncher
SoBundleLauncher <|-- ApkBundleLauncher
BundleExtractor <|.. SoBundleLauncher
SoBundleLauncher <|-- AssetBundleLauncher
AssetBundleLauncher <|-- WebBundleLauncher

class ActivityLauncher {
+ public preloadBundle(Bundle bundle)
}

class SoBundleLauncher {
+ public preloadBundle(Bundle bundle)
}

class ApkBundleLauncher {
+ public loadBundle(Bundle bundle)
}

class AssetBundleLauncher {
+ public loadBundle(Bundle bundle)
}
@enduml

在这里插入图片描述

如果想修改怎么办?
打开在线作图网址,把图片的 url 复制到下面的 url 框里面,点击 Submit ,在上面代码框里面会出现该图片对应的代码,然后修改即可。修改完成后再次生成图片即可。
是不是相当的方便呢?

基本通用语法教程

这里只介绍一些通用的语法命令,其他具体的语法请参考官方文档

1 添加标题

可以用 Title 后面加标题

Title "继承关系图"

Father <|-- Son

PlantUML

2 注释

所有以单引号开头的行 ’ 都是注释。你也可以使用多行注释,多行注释以 /’ 开头 ‘/ 结尾。

类图

方法和属性的访问权限
标识属性
-private
#protected
+public
~package private
class Dummy {
- private field1
# protected field2
+ public field3
~ package method1()
- private method3()
# protected method4()
+ public method2()
}

在这里插入图片描述

关系
  • 继承
Father <|-- Son

UML类图

  • 实现
abstract class AbstractList
interface List
List <|.. AbstractList

在这里插入图片描述

  • 组合

关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。

Human *-- Brain

UML类图

  • 聚合

关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期。

Company o-- Human

UML类图

  • 关联

类与类之间的联接。强依赖关系,表现在代码层面,为被关联类B以类属性的形式出现在关联类A中。

class Water
class Human
Human --> Water

UML类图

  • 依赖

类与类之间的联接。一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,表现在代码层面,类B作为参数被类A在某个方法中使用,例如人和烟草的关系。

Human ..> Cigarette

UML类图

在作图时,如果遇到了名称相同包名不同的类这时就要用域来进行区分。可以用 namespace,也可以直接用包名:

class BaseClass
namespace net.dummy #DDDDDD {    
.BaseClass <|-- Person    
Meeting o-- Person    
.BaseClass <|- Meeting
}
namespace net.foo {  
net.dummy.Person  <|- Person  
.BaseClass <|-- Person  
net.dummy.Meeting o-- Person
}

BaseClass <|-- net.unused.Person
class net.unused.Person {  
+ public void test();
}

UML类图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值