自定义PlantUml和C4 Model样式
什么是PlantUml
PlantUml是一个支持快速绘制的开源项目.其定义了一套完整的语言用于实现UML关系图的描述.并基于强大的graphviz图形渲染库进行UML图的生成.绘制的UML图还可以导出为图片,以及通用的矢量SVG格式文件.
如以下代码,可实现时序图
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice
@enduml
可以使用常用的编辑器vscode 或者sublime 或者其他IDE工具继承PlantUml
想了解更多PlantUml或者使用方法,可参考官网http://plantuml.com/zh/,上面详细的中英文说明
什么是C4 Model
C4 Model 在我眼里更像是一个标准,一个方法论。让架构师、程序员、业务人员在讨论IT系统架构时候统一维度,统一标准,更方便的理解和沟通IT系统中的真实问题。强烈推荐!!!
C4 模型由一系列分层的软件架构图组成,这些架构图用于描述上下文(Context)、容器(Container)、组件(Component)和代码(Code)。C4 图的层次结构提供了不同的抽象级别,每种抽象级别都与不同的受众有关
本库只是一个样式库
本库的目的是美化PlantUml和C4 Model所绘制系统架构图的样式,统一审美而产生。
1.时序图
在PlantUml代码中引用
@startuml
actor User
participant "First Class" as first
participant "Second Class" as second
participant "Last Class" as last
User -> first: DoWork
activate first
note right
this is a first note
end note
first -> second: Create Request
activate second
second -> last: DoWork
activate last
last --> second: WorkDone
destroy last
deactivate last
second --> first: Request Created
deactivate second
first --> User: Done
deactivate first
@enduml
2. 类图
以下为示例
@startuml 示例类图
!includeurl https://raw.githubusercontent.com/xuanye/plantuml-style-c4/master/core.puml
' uncomment the following line and comment the first to use locally
'!include core.puml
GREY_ARROW
abstract class BaseClass {
+ AbstractMethod() : void
# VirtualMethod(s:string) : int
}
class SubClass {
+ AbstractMethod() : void
# VirtualMethod(s:string) : int
}
interface IInterfaceA {
}
interface "IInterfaceA`1" {
Value : T <>
}
class ImplementClass {
+ Value : int <>
}
BaseClass
IInterfaceA
"IInterfaceA`1" ""
@enduml