本文章描述基于 C4-Model + PlantUML + VSCode 开发设计软件架构,相关环境搭建参看:C4-Model 开发环境搭建
1. Component
函数名 | Component($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") |
|
参数 |
alias(必须) | 定义Person的一个别名,用于后续设计的调用 |
label(必须) | 用于定义在图形上显示的标签, 可以使用字符串,也可以直接输入 |
techn | 为容器增加技术栈,如 [C/C++] [JS/TS] |
descr | 增加对Container的详细描述 |
sprite | 为容器增加图标,C4 容器默认无图标 |
tags | 增加一个自定义的 tag, 默认tag为 Container |
link | 增加一个链接,实现点击跳转的功能 |
2. ComponentDb
函数名 | ComponentDb($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") |
|
参数 | 参见:Component |
3. ComponentQueue
函数名 | ComponentQueue($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") |
|
参数 | 参见:Component |
4. Component_Ext
函数名 | Component_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") |
|
参数 | 参见:Component |
5. ComponentDb_Ext
函数名 | ComponentDb_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") |
|
参数 | 参见:Component |
6. ComponentQueue_Ext
函数名 | ComponentQueue_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") |
|
参数 | 参见:Component |
7. AddComponentTag
函数名 | AddComponentTag ( $tagStereo, $bgColor=$CONTAINER_BG_COLOR, $fontColor=$ELEMENT_FONT_COLOR, $borderColor=$CONTAINER_BORDER_COLOR, $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="") |
|
参数 |
tagStereo(必须) | 设置一个标签的名称,用于后续的调用与显示,设置值为显示值 |
bgColor | 设置容器的背景颜色 |
fontColor | 设置容器的字体颜色 |
borderColor | 设置边框的颜色 |
shadowing | 是否显示阴影,true 或者 false |
shape | 为容器设置一个图标, 默认为直角 roundedBox 圆角 eightSided 斜角 |
sprite | 设置一个图标 |
techn | 为容器增加一个技术栈,如果在容器定义中重新声明则显示容器中的定义 |
legendText | 设置在图例中显示的标题 |
legendSprite | 设置一个在图例中显示的图标,默认为上面参数sprite设置的图标 |
8. AddExternalComponentTag
函数名 | AddExternalComponentTag( $tagStereo, $bgColor=$CONTAINER_BG_COLOR, $fontColor=$ELEMENT_FONT_COLOR, $borderColor=$CONTAINER_BORDER_COLOR, $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="") |
|
参数 | 参见:AddComponentTag |
9. 代码示例
@startuml
!define RELATIVE_INCLUDE /Users/xxx/C4-PlantUML
!include RELATIVE_INCLUDE/C4_Component.puml
!include <office/Devices/data_jack>
!include <office/Devices/device_bluetooth>
Component(ComponentA, "Component", "C/C++", "一个C4 demo 程序的一个组件")
ComponentDb(ComponentDbA, "ComponentDb", "C/C++", "一个C4 demo 程序的一个组件")
ComponentQueue(ComponentQueueA, "ComponentQueue", "C/C++", "一个C4 demo 程序的一个组件")
Component_Ext(Component_ExtA, "Component_Ext", "C/C++", "一个C4 demo 程序的一个组件")
ComponentDb_Ext(ComponentDb_ExtA, "ComponentDb_Ext", "C/C++", "一个C4 demo 程序的一个组件")
ComponentQueue_Ext(ComponentQueue_ExtA, "ComponentQueue_Ext", "C/C++", "一个C4 demo 程序的一个组件")
AddComponentTag("Eth", $sprite=data_jack, $techn="LwIP")
Component(AddComponentTagA, "AddComponentTag", $descr="以太网接口", $tags="Eth")
AddExternalComponentTag("bluetooth", $sprite=device_bluetooth, $techn="bluetooth")
Component_Ext(AddExternalComponentTagA, "AddExternalComponentTag", $descr="以太网接口", $tags="bluetooth")
SHOW_LEGEND(false)
@enduml