IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 使用markdown玩转代码架构设计 -> 正文阅读

[Java知识库]使用markdown玩转代码架构设计

前言:

如果你像我一样是一名IT开发工程师的话,你应该不会没有听过markdown文件;

或者你现在正在前往这条不归路的话,那你也应该学习markdown,它的强大之处编写效率可能超乎你的想象~~

平时开发生活中基本上替代一大部分word/notepad等文本类软件的职能是完全没有问题的,想目前这篇博客就是使用markdown写的

不过这还没啥,本期我将介绍给大家如何使用markdown进行代码架构设计图的**“绘画”**,在文章的最后会附上代码链接~

平台介绍:

目前用过几款编写markdown文件,个人还是习惯使用typora,不过今年这个软件最新版要收费了,大家不想花钱下载beta版本版本就行,下载点我,问题不大

正文开始:

一口吃不出来一个胖子,入坑先入门,我们从简单开始“循序渐进”地来~~

流程图:

开始
准备材料
编写博客
推送文章
结束

单向流程很简单,于是你可以灵活变动去改换式样,或者画成从上往下的也行,如下:

工作中
前置
N
Y
圆形流程图
右向旗帜流程图
圆形流程
思考流程
右向旗帜流程
想了很久
准备写博客
放弃
结束
字母表示含义
TB从上到下
BT从下到上
LR从左到右
RL从右到左
表述说明含义
id[文字]矩形节点表示过程
id(文字)圆角矩形节点表示开始与结束
id((文字))圆形节点表示连接。为避免流程过长或有交叉,可将流程切开成对
id{文字}菱形节点表示判断、决策
id>文字 ]右向旗帜节点
  1. T、B、L、T分别是Top/Bottom/Left/Right的缩写

  2. id为节点的唯一标识,类似于变量。括号内为节点要显示的文字

  3. 单向箭头为流程进行方向。支持虚线与实线,有箭头与无箭头、有文字与无文字。分别是—、-.-、 -->、-.->、–文字–>、-.文字.->、–文字—、-.文字.-

  4. 支持子图。如代码的subgraph。

泳道图

也叫序列图,一般包括5个部分,分别是:参与者、消息线、循环、选择、可选、并行、注解

还是一样,先来个简单的

director builder building 指导 建造 director builder building 建造者模式

再来个复杂点的, 包括更多骚操作

浏览器 typora软件 打开浏览器 输入编辑器的官网地址 加载官网地址内容 点击下载 下载 打开 编写 loop [循环写,直到字数比较满意] 关闭 写更好的文章 alt [发现网上有更好的文章] [没有我的想法好] 编写多篇文档 par [并行执行] 关闭,去睡觉 opt [time > 24:00] 一个技术大佬 助力你进步的工具 浏览器 typora软件 写markdown设计文档

消息线

类型描述
->无箭头的实线
–>无箭头的虚线
->>有箭头的实线(主动发出消息)
–>>有箭头的虚线(响应)
-x末端为X的实线(主动发出异步消息)
–x有箭头的实线(以异步形式响应消息)

alt 可以理解为可替代的方案,可能的情况

opt可以理解为一个if语句,满足条件下执行的操作

UML类图

这个比较复杂,简单入个门就行,

classA
int id
-List msg
getId(int id) : List<int>
setMessages(List<string> messages)

要指定类成员(即任何属性或方法)的可见性,这些符号可以放在成员名之前,但它是可选的:

可见性JavaUML
对所有类可见(公共的)public+
仅对本类可见(私有的)private-
对本包和所有子类可见(受保护的)protected#
对本包可见(包内部)默认,不需要修饰符_

还能指定类型

?interface?
Shape
noOfVertices
draw()
?enumeration?
Color
RED
BLUE
GREEN
WHITE
BLACK

类的关系也很重要,如果一开始设计的时候就能设计好,那么后期编码会简单很多~

继承
组合
聚合
单向关联
双向关联
依赖
接口实现
Link(Dashed)
classA
classB
classC
classD
classE
classF
classG
classH
classI
classJ
classK
classL
classM
classN
classO
classP

类关系的连接符

描述描述说明
<|–Inheritance继承一般而言,如果类A扩展类B,类A不但包含从类B继承的方法,还会拥有一些额外的功能。
*–Composition组合
o–Aggregation聚合聚合关系意味着类A 的对象包含类B 的对象。
–>Association单向关联
Link (Solid)双向关联
…>Dependency依赖如果一个类的方法操纵另一个类的对象, 我们就说一个类依赖于另一个类。
…|>Realization实现
Link (Dashed)
   
classDiagram
    Customer "1" --> "*" Ticket
    Student "1" --> "1..*" Course
    Galaxy --> "many" Star : Contains

不同的基数选项是:

  • 1 只有1个
  • 0..1 零或一
  • 1..* 一个或多个
  • * 许多
  • n n {其中n> 1}
  • 0..n 0至n {其中n> 1}
  • 1..n 1至n{其中n> 1}

复杂的uml使用请参考:https://mermaid-js.github.io/mermaid/#/classDiagram

补充:

md文本还具备可迁移性,使用https://planttext.com/可以导出为图片,在一些需要使用图片的场景直接就可以使用了

代码:

个人惯例,直接上一波代码,或者大家可以直接git clone代码,大家赶紧收藏起来吧
本页面的md文本是被平台渲染过的,查看代码内容直接看链接

https://github.com/junkaitongxue/DreamKiteToolkit/blob/master/release/md/mermaid.md

欢迎大家留言评论~~

(以上为DreamKite本人原创,转载请附上原文链接)

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:28:38  更:2022-04-26 11:33:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:03:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码