文章插图
逻辑:1、2或以上的人对应多个会议(多对多);2、出席会议记录类关联了人和会议两个类,并且出席会议记录最后的结果为两边集合各自的全集的笛卡尔乘积的子集[排除重复的结果])
文章插图
依赖箭头指向入参类
A need - a B
的关系班级类和学生类 , 班级类作为学生类的方法入参文章插图
实现箭头指向接口学生类实现人类
文章插图
1.2.3.1.1、各类图关系实例1.2.3.1.1.1、泛化 / 继承
public class DaoSupport{private String name;public void save(Object entity){}public void delete(Object id){}}public class PersonServiceBean extends Daosupport{}
使用typora的mermaid脚本画图语法:<|--表示继承
箭头指向的一方是被继承者
+
表示public
-
表示 private
语法学习地址:Markdown教程-慕课网 (imooc.com)mermaid语法学习地址:https://mermaid-js.github.io/mermaid/#/
```mermaidclassDiagram%% 要用注释只能放在这里 , 对类图进行说明class DaoSupport{属性返回值类型放在前面 -String的-和String中间最好也别搞空格(只是这个mermaid脚本中而已),但是严格写法应该是 -name : String-String name方法返回值类型是在后面 另外:+void的+和void之间别搞空格+save(Object entity) void+delete(Object id) void}class PersonServiceBean{}DaoSupport <|-- PersonServiceBean```
效果如下:classDiagram%% 这是一个小试牛刀的类图 class DaoSupport{-String name+save(Object entity) String+delete(Object id) void }
class PersonServiceBean{
}
DaoSupport <|-- PersonServiceBean
1.2.3.1.1.2、组合
public class Person {// 组合关系:某个类的对象 当做 当前类的属性,并已经new了private Head head = new Head();}
mermaid脚本画图语法:
?*--
表示组合,星*
指向的是整体 即:菱形指向整体
```mermaidclassDiagramclass Person{}Person *-- Head// 表示的是:Person 组合 Head```
效果如下:classDiagram
class Person{
}
Person *-- Head
1.2.3.1.1.3、聚合
public class Person {// 聚合关系private IDCard card;// 对照:组合关系private Head head = new Head();}
```mermaidclassDiagram class Person{ } Person o-- IDCard// 这是字母o 不是0,菱形指向整体 即:Person聚合了IDCard```
效果如下:classDiagram class Person{
}
Person o-- IDCard
1.2.3.1.1.4、关联、依赖、实现
文章插图
1.2.3.2、对象图
定义:表示在某时刻对象和对象之间的关系(由于对象存在生命周期 , 因此对象图只能在系统某一时间段存在)对象图是类图的实例,几乎使用与类图完全相同的标识 。一个对象图可看成一个类图的特殊用例
文章插图
1.2.4、顺序图(时序图 / 序列图)和通信图1.2.4.1、顺序图
定义:用来表达对象间消息传递的顺序1.2.4.2、顺序图组成
一般来说:顺序图也叫时序图、序列图(这三个在英文中都是Sequence
),但是:严格来说(电子通讯方面) , 顺序图是顺序图,时序图 / 序列图是时序图 / 序列图(在电子通讯方面,这个实在要对应的话,就对应UML中的时间图Timing Diagram
),在电子通讯领域这二者要表达的意思并不一样,但是对于我们编程这一行业来说:直接把顺序图、时序图、序列图等价也没错 , 叫其中哪一个名字都无所谓
- markdown中画时序图语法(本质是使用了mermaid脚本):https://www.imooc.com/wiki/markdownlesson/markdownsequencediagram.html
- mermaid脚本语法:https://mermaid-js.github.io/mermaid/#/sequenceDiagram
推荐阅读
- 华为开发者大会2022:HMS Core 3D建模服务再升级,万物皆可驱动
- 38 全球名校AI课程库| 马萨诸塞大学 · 自然语言处理进阶课程『Advanced Natural Language Processing』
- 1 JAVA语言学习-面向对象
- 学习笔记之——C语言 函数
- 闻道Go语言,6月龄必知必会
- C语言基础--数组
- 手写编程语言-如何为 GScript 编写标准库
- 绝杀processOn,这款UML画图神器,阿里字节都用疯了,你还不知道?
- C语言小白刷题
- UML类中的6种关系