Snapshot Diagram

简单来说,Snapshot Diagram就是用来表示程序运行时状态的图。绘制Snapshot Diagram可以让我们对程序的运行有所了解,直观的刻画各类变量状态随时间的变化,便于程序员之间的交流以及解释设计思路。

下面来简述一下如何画出正确的Snapshot Diagram图。

首先来简述一下一些基本概念:

① 对象、引用、数据类型

String name = "Zhw";

其中,"Zhw"是对象,name是引用,String是数据类型。

②基本数据类型、对象数据类型

数据类型分为:基本数据类型和对象数据类型。

首字母大写的即为对象数据类型,反之,为基本数据类型。

其中基本数据类型全为不可变的数据类型;对象数据类型既有可变的又有不可变的。

下面来介绍一下Snapshot Diagram的具体画法:

有向线(带箭头)的线从引用指向对象:

Ⅰ 基本数据类型的对象:

Ⅱ 对象数据类型的对象

需要用圈包围并注明对象的数据类型、值

Ⅲ 抽象数据类型的对象

关于可变与不可变:

Ⅰ 对象:

对于可变的对象,如果需要用圈包围,使用单圈包围。
对于不可变的对象,如果需要用圈包围,使用双圈包围。

Ⅱ  引用:

对于可变的引用,画单线箭头。
对于不可变的引用,画双线箭头。

List的Snapshot Diagram画法:

 

Set的Snapshot Diagram画法:

 

Map的Snapshot Diagram画法:

 

<think>我们讨论的是如何将Mermaid序列图代码(sequenceDiagram)转换为图片。根据引用[1]和引用[3],我们了解到PlantUML和Mermaid都是可以通过代码生成图表的工具。其中,Mermaid序列图是本文关注的焦点(引用[3])。下面将介绍几种将Mermaid序列图代码转换为图片的方法。###方法1:使用Mermaid官方工具Mermaid提供了在线编辑器(https://mermaid.live/),可以直接将代码转换为图片:1.访问在线编辑器2.粘贴序列图代码3.导出为PNG/SVG格式###方法2:使用VisualStudioCode插件1.安装VSCode的Mermaid插件(如`MermaidMarkdownSyntaxHighlighting`和`MermaidPreview`)2.创建`.mmd`文件并写入序列图代码3.右键选择`PreviewMermaid`即可查看渲染结果4.使用导出功能保存为图片###方法3:使用Node.js库通过Mermaid的Node.js库在本地生成图片:```bashnpminstall-g@mermaid-js/mermaid-climmdc-iinput.mmd-ooutput.png```其中`input.mmd`是包含序列图代码的文件。###方法4:结合PlantUML(引用[1])虽然PlantUML语法与Mermaid不同,但PlantUML同样支持序列图且可导出图片:```plantuml@startuml患者->智能合约:发起报销申请智能合约->医院系统:调取诊疗数据医院系统-->智能合约:加密哈希值@enduml```使用PlantUML在线服务器(http://www.plantuml.com/plantuml/)或本地工具转换。###对比总结|方法|适用场景|优点||-------------|----------------------------|--------------------------||在线编辑器|快速单次转换|无需安装,即开即用||VSCode插件|开发过程中频繁生成|集成开发环境,实时预览||Node.jsCLI|自动化脚本或批量生成|可集成到CI/CD流程||PlantUML|需同时使用多种UML图的情况|支持多种UML图类型[^1][^2]|§§相关问题§§1.Mermaid序列图与PlantUML序列图语法有何主要区别?2.如何将Mermaid序列图集成到Markdown文档中?3.使用MermaidCLI时如何自定义主题样式?</think>要将 Mermaid 序列图代码(`sequenceDiagram`)转换为图片,以下是几种高效可靠的方法,结合引用内容推荐工具: ### 一、推荐工具(按优先级排序) 1. **Mermaid Live Editor(在线)** [官网链接](https://mermaid.live/) - 粘贴序列图代码 → 自动渲染 → 导出为 PNG/SVG/PDF - 支持实时预览和语法调试(引用[3]提到的交互性) - **优势**:零安装,适合快速生成 2. **VS Code + Mermaid 插件** - 安装插件: - [Mermaid Preview](https://marketplace.visualstudio.com/items?itemName=vstirbu.vscode-mermaid-preview) - [Mermaid Markdown Syntax Highlighting](https://marketplace.visualstudio.com/items?itemName=bpruitt-goddard.mermaid-markdown-syntax-highlighting) - 操作流程: ```markdown 1. 创建 `.mmd` 文件(如 `diagram.mmd`) 2. 写入序列图代码 3. 右键选择 "Preview Mermaid Diagram" 4. 导出为图片 ``` - **优势**:开发无缝集成(符合引用[4]的代码生产理念) 3. **PlantUML(命令行/在线)** - 在线工具:http://www.plantuml.com/plantuml/ - 本地使用(需安装 Java): ```bash java -jar plantuml.jar -tpng diagram.mmd ``` - **优势**:开源且支持多种 UML 图类型(引用[1][2]) 4. **Mermaid CLI(命令行)** ```bash npm install -g @mermaid-js/mermaid-cli mmdc -i input.mmd -o output.png ``` - **适用场景**:自动化文档生成(CI/CD 集成) --- ### 二、操作示例(以 Mermaid Live Editor 为例) 1. 访问 [https://mermaid.live](https://mermaid.live) 2. 粘贴您的序列图代码: ```mermaid sequenceDiagram 患者->>+智能合约: 发起报销申请 智能合约->>+医院系统: 调取诊疗数据 医院系统-->>-智能合约: 加密哈希值 ``` 3. 点击右上角 **Download** 选择格式(PNG/SVG) ![](https://mermaid./img/snapshot-btn.png) --- ### 三、工具对比 | 工具 | 安装复杂度 | 输出格式 | 适合场景 | |--------------------|------------|----------------|-------------------------| | Mermaid Live Editor| 无需安装 | PNG/SVG/PDF | 快速单次转换 | | VS Code 插件 | 中等 | PNG/SVG | 开发环境日常使用 | | PlantUML | 高 | PNG/SVG/ASCII | 多类型UML图支持[^1][^2] | | Mermaid CLI | 中等 | PNG/SVG | 自动化流程 | --- ### 四、注意事项 1. **语法校验**:转换失败时检查 Mermaid 语法(如缩进、箭头符号 `->>` 等) 2. **中文支持**:确保系统/编辑器字体支持中文字符集 3. **复杂图优化**:大型序列图建议分模块生成(引用[3]的 Actor Menus 功能) > 提示:PlantUML 和 Mermaid 都支持从文本生成 UML 图,但语法略有差异(引用[1][3])。若需迁移语法,可用工具 https://mermaid-to-plantuml.github.io/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值