本文主要是介绍UML类图工具mermaid教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 写在开始
- 定义类
- 定义类成员
- 定义类之间关系
- 关系类型
- Dependency依赖
- Association关联
- Aggregation聚合
- Composition组合
- Generalization泛化
- Inheritance继承
- Realization实现
- 类描述
- 注释
写在开始
mermaid可以用代码的形式来画UML类图,可在VsCode中安装插件直接使用.
UML类图可以清晰地表示类之间的关系,可以帮助程序员的开始敲代码之前进行系统架构,是必须掌握的一门技能.
本文将介绍如何使用开源工具mermaid以代码的形式来画类图.学习UML之间的关系以及mermaid的语法.
定义类
classDiagramclass AnimalVehicle <|-- Car
定义类成员
类成员包括类属性和类方法,mermaid使用()
来区别元素是属性还是方法,只有方法后面才会携带括号.
- 类属性相关修饰符的表示
`+`: Public`-`: Private`#`: Protected`~`: Package/Internal`*`: Abstract e.g.: someAbstractMethod()*`$`: Static e.g.: someStaticMethod()$
- 使用类名带
:
带成员名称来增加一个成员
classDiagramclass BankAccountBankAccount : +String ownerBankAccount : +BigDecimal balanceBankAccount : +deposit(amount) BooleanBankAccount : +withdrawal(amount)
或者使用 {} 来增加成员
classDiagramclass BankAccount{+String owner+BigDecimal balance+deposit(amount) Boolean+withdrawl(amount)}
定义类之间关系
[classA][Arrow][ClassB]:LabelText
关系类型
Dependency依赖
学生在学习生活中经常使用电脑,于是对电脑产生了依赖。依赖关系是五种关系中耦合最小的一种关系。类A要完成某个功能引用了类B,则类A依赖类B。依赖在代码中主要体现为类A的某个成员函数的返回值、形参、局部变量或静态方法的调用,则表示类A引用了类B。
下图应该为虚线连接
classDiagram学生 ..> 电脑
Association关联
关联关系使用实线加箭头表示,类之间的关系比依赖要强。学生与老师是关联的,学生可以不用电脑,但是学生不能没有老师。
classDiagram学生-->老师
单向关联
classDiagram学生-->老师
双向关联
classDiagram学生--老师
Aggregation聚合
关联关系的一种,表示拥有has-a
的关系.此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体的对象,也可以为多个整体对象共享,比如球员与球队、教练与球队的关系。此时球员和教练确实属于球队,但是并没有那么强的绑定关系,球员和教练都可以转会.
classDiagram球队A o-- 球员小贝球队A o-- 教练
Composition组合
组合也是关联关系的一种特例,它体现的是一种contains-a
的关系,这种关系比聚合更强,也称为强聚合。
它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束,比如小贝和他的头和心脏。
classDiagram球员小贝 *-- 头球员小贝 *-- 心脏
Generalization泛化
泛化是学术名称,通俗来讲,泛化指的是类与类之间的继承关系和类与接口之间的实现关系。
Inheritance继承
继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能.使用空心箭头加实线表示.
classDiagramPerson <|-- Student
Realization实现
类实现接口,使用空心箭头加虚线表示
此处应该使用虚线
classDiagramclass IPayMode{<<interface>>+ pay()}class PasswordPayMode{+pay()}class FacePayMode{+pay()}class FingerprintPayMode{+pay()}IPayMode <|.. PasswordPayModeIPayMode <|.. FacePayModeIPayMode <|.. FingerprintPayMode
类描述
<<Interface>> 表示接口类<<abstract>> 代表抽象类<<Service>> 代表服务等级<<enumeration>> 代表一个枚举
可以在定义类后使用
classDiagramclass Shape<<interface>> Shape
也可以在定义类中使用
classDiagramclass Shape{<<interface>>noOfVerticesdraw()}class Color{<<enumeration>>REDBLUEGREENWHITEBLACK}
注释
注释必须自己一行, 并且必须以 %% (双百分号) 开头.
这篇关于UML类图工具mermaid教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!