通用plantuml 类图(Class Diagram)借鉴模版

使用PlantUML一键生成UE5核心类继承关系图 在大型C++项目开发中,理解复杂的类继承体系是掌握系统架构的关键。类图作为一种UML(统一建模语言)图表,能够直观地展示类之间的继承、组合等关系,是进行代码设计、评审和团队沟通的重要工具。其技术价值在于将抽象的代码结构可视化,帮助开发者快速理清模块依赖,避免设计缺陷。在游戏开发领域,尤其是使用虚幻引擎5(UE5)这类庞大框架时,面对诸如AActor、UObject、APawn等成百上千个类,手动绘制和维护类图成本极高。本文聚焦于利用PlantUML这一纯文本绘图工具,通过编写脚本自动化生成UE5核心类的继承 阅读详情
@startuml BtIf
class BtModulebase
{
    + void post(BtTaskBase* task)
    - std::shared_ptr<BtSpThread> itsThread
}

class SpThread
{
    - std::vector mReqList
    + void threadLoop()
    - std::shared_ptr<BtTaskBase> curTask
}

class BtSpThread
{
    + void postRequest(BtTaskBase* req)
}

BtSpThread --|> SpThread
BtSpThread -l-* BtModulebase

class BtHfpModule
class BtAvpModule
class BtBleModule
class BtGenModule
class BtAvpSrcModule
class BtPbdlPhotoModule
class BtGenSearchModule
class BtHidhModule
class BtPbdlModule

BtHfpModule -u-|> BtModulebase
BtAvpModule -u-|> BtModulebase
BtBleModule -u-|> BtModulebase
BtGenModule -u-|> BtModulebase
BtAvpSrcModule -u-|> BtModulebase
BtPbdlPhotoModule -u-|> BtModulebase
BtGenSearchModule -u-|> BtModulebase
BtHidhModule -u-|> BtModulebase
BtPbdlModule -u-|> BtModulebase


class BtTaskBase
{
    + virtual void doAction(SpThread* thread)
}

BtTaskBase -r-* SpThread

class BtSingleTask
{
    + void doAction() override
    + virtual void execute()
}

class BtHfpDialOutTask
{
    + void execute() override
}
class BtPbdlStoreContactPictureTask
{
    + void execute() override
}
class BtPbdlUpdateFavouriteContactTask
{
    + void execute() override
}
class BtHfpCancelAllTask
{
    + void execute() override
}
class BtAvCancelAvrcpVersionTask
{
    + void execute() override
}
class BtBleAdvEnableTask
{
    + void execute() override
}

BtHfpModule ..> BtTaskBase
BtAvpModule ..> BtTaskBase
BtBleModule ..> BtTaskBase
BtGenModule ..> BtTaskBase
BtAvpSrcModule ..> BtTaskBase
BtPbdlPhotoModule ..> BtTaskBase
BtGenSearchModule ..> BtTaskBase
BtHidhModule ..> BtTaskBase
BtPbdlModule ..> BtTaskBase

BtTaskBase <|-- BtSingleTask
BtHfpDialOutTask -u-|> BtSingleTask
BtPbdlStoreContactPictureTask -u-|> BtSingleTask
BtPbdlUpdateFavouriteContactTask -u-|> BtSingleTask
BtHfpCancelAllTask -u-|> BtSingleTask
BtAvCancelAvrcpVersionTask -u-|> BtSingleTask
BtBleAdvEnableTask -u-|> BtSingleTask

@enduml

样式如下图

在这里插入图片描述

PlantUML画类图添加备注和模板 立即下载

相关推荐

plantuml编辑器:PlantUML在线演示客户端

PlantUML编辑器 Vue.js,Vuex项目 PlantUML在线演示客户端 产品特点 多个PlantUML模板 备忘单 片段 缩放和滚动 支持SVG和PNG 保存文字 创建要点 支持降价 下载图片 打印HTML 构建设置 # install dependencies npm install # install flow-typed npm run flow-typed # serve with hot reload at localhost:8080 npm run serve # build for production with minification npm run bui

PlantUML画类图(四)抽象类、接口、包等其他元素

一、抽象类和接口 用关键字abstract或abstract class来定义抽象类。抽象类用斜体显示。 也可以使用interface, annotation 和 enum关键字。 @startuml abstract class AbstractList abstract AbstractCollection interface List interface Collection List ...

FantasyWxw的博客 1万+

液晶屏LVDS接口:【图文详讲】

​LVDS(Low Voltage Differential Signaling,即低电压差分信号)接口又称RS-644总线接口,是20世纪90年代才提出的一种数据传输和接口技术。LVDS接口是美国NS美国国家半导体公司为克服以TTL电平方式传输宽带高码率数据时功耗大,电磁干扰大等缺点而研制的一种数字视频信号传输方式

weixin_66299220的博客 1万+

通用plantuml 时序图(Sequence Diagram)模板头

以下是uml图的样式。

weixin_45022086的博客 1550

H3C-HCL模拟器-STP生成树协议实验

边缘接口的存在是为了提高网络的收敛速度和性能。由于边缘接口连接的是终端设备,这些设备通常不会产生环路,因此不需要参与生成树协议的计算和决策。边缘接口通常是指那些不会连接到其他交换机或生成树的冗余路径的接口。H3C交换机千兆口的cost默认是20,把SW2的g1/0/2接口的cost改为100;SW4是根网桥,根据STP计算,闭塞端口应该在SW1上;方法:使得SW2到SW1的cost比SW4到SW1更大;7)修改配置:把SW1连接PC的所有接口配置为边缘接口。协议的计算开销,提高网络的收敛速度。

网络工程 2995

【漏洞复现】7-Zip目录穿越漏洞(CVE-2025-11001)

摘要:CVE-2025-11001是7-Zip(v21.02-v24.09)Windows版处理ZIP包符号链接时的高危漏洞,攻击者可构造恶意ZIP文件实现目录穿越和任意文件写入。漏洞源于路径检查缺陷,当用户解压含特殊符号链接的压缩包时,可能将文件写入系统目录。复现利用GitHub公开的Python脚本(https://github.com/pacbypass/CVE-2025-11001)可生成攻击包,需注意该漏洞仅影响Windows且需要用户交互。

LongL_GuYu的博客 1607

用PlantUML和语雀画UML类图

UML:统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。PlantUML:是一个开源工具,它允许我们用文本形式来描绘和创建UML图。在VSCode中可以安装扩展来绘制,而在语雀的MarkDown编辑器中,则可以用“文本绘图”形式直接在文档中创建。UML类图:在面向对象语言或开发中类图是最基础也最有用的一种图,它可以描述类的成员以及多个类之间的关系。在Godot中,我们使用GDScript进行开发时,也需要涉及类、继承、组合等。

巽的博客 6365

家长必看!用RouterOS轻松屏蔽不良网站,保护孩子上网安全

本文为家长提供了一份详细的RouterOS路由器配置指南,旨在通过技术手段保护儿童上网安全。文章核心介绍了如何利用RouterOS的DNS静态条目功能,轻松实现禁止访问特定不良网站,并结合防火墙时间规则,为孩子构建一个纯净、可控的家庭网络环境,操作简单,无需专业背景。

weixin_28363123的博客 1266

PlantUML画类图(三)备注和模板

模板通过类关键字("<<“和”>>")来定义 可以使用note left of , note right of , note top of , note bottom of这些关键字来添加备注。 你还可以在类的声明末尾使用note left, note right,note top, note bottom来添加备注。 此外,单独用note这个关键字也是可以的,使用 … 符...

FantasyWxw的博客 1万+

Cloud Connector RFC 访问控制深度实践:为 SAP BTP ABAP environment 打通安全、可控的远程连接

本文是一份面向企业ABAP团队与平台工程团队的Cloud Connector RFC访问控制配置指南。文章详细介绍了虚拟主机/实例号、负载均衡、资源白名单等核心概念,并提供了从零开始的配置流程。主要内容包括:通过Cloud Connector建立安全隧道的价值(零暴露、最小权限)、两种连接类型(无负载均衡/带负载均衡)的配置方法、资源白名单设置技巧,以及两个典型应用场景(Custom Code Migration远程检查与BAPI调用)的实操案例。指南基于SAP官方文档,包含落地经验与避坑建议,可帮助团队快

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 146

英伟达 Jetson AGX Thor 官方入门教程(一)系统U盘安装

NVIDIA Jetson AGX Thor开发套件快速安装指南 本指南详细介绍了NVIDIA Jetson AGX Thor开发套件的安装流程。该套件搭载T5000 SoM,为物理AI和机器人应用提供强大支持。安装过程采用全新的JetPack 7.0方案,通过USB闪存盘即可完成BSP(Jetson Linux)安装,无需依赖Ubuntu主机。指南包含硬件开箱说明、两种配置模式(带显示器/无显示器)、详细的ISO镜像下载和USB制作步骤(推荐使用Balena Etcher工具),以及首次启动后的初始设置流

机器人控制与仿真应用 2867

AI代理记忆与图原生基建:下一代智能应用开发新范式

在人工智能和软件架构领域,AI代理的长期记忆能力与图原生基础设施正成为关键技术趋势。AI代理记忆是指让智能体能够持久化存储和检索历史交互信息,从而实现连续、复杂的任务执行,其技术原理通常涉及向量数据库与传统数据库的结合。图原生基建则以图数据库和图计算引擎为核心,通过节点和边的数据结构高效建模实体间关系。这两项技术的结合为构建智能应用提供了新的基础设施,其技术价值在于能够处理长周期、多步骤的复杂任务,并实现数据的深度关联与推理。在应用场景上,它们广泛适用于智能图表设计、复杂系统建模、知识图谱构建和工作流自动化

weixin_30482181的博客 293

Unity最强动作战斗框架?Combat System Framework 深度解析

Combat System Framework 并不是一个简单的角色控制器,而是一套完整的动作游戏战斗开发框架。它借鉴了现代 AAA 游戏常见的架构思想,以 Gameplay Tag 为核心,结合 ScriptableObject 数据驱动设计,将技能、属性、Buff、伤害、武器、动画通知等系统有机整合在一起。同时,配套的可视化动画时间轴、Root Motion 工具和实时预览窗口,大幅优化了动作开发流程。当然,这套框架也有一定的学习门槛。

2403_88403568的博客 680

[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式

模板方法模式是一种基于继承的代码复用技术,它体现了面向对象的诸多重要思想,是一种使用频率较高的模式。模板方法模式广泛应用于框架设计(例如Spring、JUnit等)中,以确保通过父类来控制处理流程的逻辑顺序(例如框架的初始化、测试流程的设置等)。

程序员三木的博客 1264

工业产线瑕疵检测:基于 YOLO 的自动化质检系统实战

从工业瑕疵数据集构建到模型训练,从桌面检测界面到产线适用性优化,本文覆盖了一套工业质检系统的完整路线。这个场景的核心评价指标不是最高精度,而是在保证 recall ≥ 0.95 的前提下尽可能压低 false positive——因为漏检的直接成本(客户投诉、质量事故)远高于误报的成本(人工复检)。部署时先设一个偏低的置信度阈值确保覆盖,再通过持续收集人工复检数据来逐步调优。

m0_71589036的博客 66

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

PlantUML画出如女神漂亮的流程图

详解PlantUML画出漂亮的流程图

ftzchina的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

PlantUML教程及主题模板

plantuml教程:https://plantuml.com/zh/sequence-diagram plantuml在线工具:https://www.planttext.com FRLH主题:https://puml.littletools.ml/theme/frlh.style 流程图 状态图 附录:样式表 附录:颜色表

frcoder的博客 7939

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

微知-plantuml常用语法和要点以及模板?(note over、create、box,endbox、alt,else,end, autonumber)

官网序列图: https://plantuml.com/sequence-diagram。使用 (nn) 选项(在箭头之前或之后)使箭头倾斜,其中 nn 是偏移像素的数量。关键字activate和deactivate用来表示参与者的生命活动。可以使用box和end box画一个盒子将参与者包裹起来。rnote代表正方形(rectangle)的备注框。还可以在box关键字之后添加标题或者背景颜色。destroy表示一个参与者的生命线的终结。一旦参与者被激活,它的生命线就会显示出来。更高级参考官网详细说明。

技术札记 3875

PlantUML 实战示例(使用 PlantUML 画用例图、类图、活动图、时序图)

PlantUML 实战示例(使用 PlantUML 画用例图、类图、活动图、时序图)

9085

画图工具_「PlantUML」程序猿的专属画图工具

PlantUML作为一个插件安装在IDEA中,可以用代码实现各种图,可千万别被他名字给蒙蔽了。像经常用的ER图、UML图、思维导图等。ER图@startumlclass Base {Long id 编号}class User {String name 名字String nickname 昵称Integer gender 性别}class Order {BigDecimal price 价格Stri...

weixin_39823017的博客 470

PlantUML 之类图

类图介绍 今晚上借着燥热的天气学习下UML图的使用,然后开始连续3篇,时序图、活动图、类图的学习记录,为对项目开发中混沌的业务逻辑还以清晰. UML Sequence UML Class UML Activity 类图显示了系统的静态结构 类:类图中的主要元素,用矩形表示。矩形的上层表示类名、中层表示属性、下层表示方法。 类之间的关系:关联、依赖、聚集、泛化和实...

文化园 2万+

plantuml样式_PlantUML类图的写法

PlantUML类图PlantUML用下面的符号来表示类之间的关系:类之间的关系泛化,Generalization:关联,Association:组合,Composition:*--聚合,Aggregation:o--实现,Realization:依赖,Dependency:以上是常见的六种关系,--可以替换成..就可以得到虚线。另外,其中的符号是可以改变方向的,例如:...

weixin_42295528的博客 1978

PlantUML绘制UML之类图

类之间的关系:泛化、组合和聚合可以通过下表中的符号表示。组合关系指的是将不同的元素或集合放在一起,形成一个新的系统(如翅膀、羽毛和大雁的关系),它具有特别的功能和性质。而聚合关系是指把一些具有不同特性的元素汇聚在一起,从而形成一个相对完整的结构的关系(如汽车和轮胎的关系)。类图主要用来显示系统中的类、接口以及它们之间的关系,便于设计、分析应用程序和正向、逆向工程。类图包含class(类)、abstract(抽象类)、interface(接口)、enum(枚举)、struct(结构体)等等元素。

weixin_64696832的博客 1373

使用PlantUml绘制类图

导语 PlantUml是一个通过标记性语言绘制UML图的工具,支持的UML图包括:时序图、用例图、类图、组件图、活动图等。 在此简单介绍下如何使用PlantUml绘制类图。 如何使用该工具 PlantUml工具是将写好的PlantUml语言解析渲染成图片。目前多种IDE,如Idea、VScode等,均支持通过插件安装PlantUML工具,不过在此介绍的是在线工具。 www.plantuml.com/是PlantUML的在线工具。我们只需要在输入框中写好PlantUml语言,点击’Submit‘即可生成其对应

qq_39366927的博客 1万+

横空出世!IDEA画图神器来了,比Visio快10倍!

PlantUML是一款开源的UML图绘制工具,支持通过文本来生成图形,使用起来非常高效。可以支持时序图、类图、对象图、活动图、思维导图等图形的绘制。下面使用PlantUML来绘制一张流程图,可以实时预览,速度也很快!虽然目前可以绘制UML图的图形化工具很多,但是对于程序员来说,使用代码来绘图可能更直接,效率更高,尤其是配合IDEA使用。如果你想使用代码来绘图,不妨尝试下PlantUML吧。

weixin_42907150的博客 2480

UML常见类图关系及对应的plantUML语法

类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。 类图关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。

Pillary的专栏 1万+
上一篇: UML类图中各箭头的含义
下一篇: Android C++生成compile_commands.json
蟹老板不会CPP
博客等级 码龄8年 131粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值