UML建模语言、设计原则、设计模式( 七 )

mermaid脚本画图语法:
? *--表示组合 , 星* 指向的是整体 即:菱形指向整体
```mermaidclassDiagramclass Person{}Person *-- Head// 表示的是:Person 组合 Head```效果如下:
classDiagram
class Person{
【UML建模语言、设计原则、设计模式】}
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、关联、依赖、实现
UML建模语言、设计原则、设计模式

文章插图
1.2.3.2、对象图
定义:表示在某时刻对象和对象之间的关系(由于对象存在生命周期 , 因此对象图只能在系统某一时间段存在)对象图是类图的实例 , 几乎使用与类图完全相同的标识 。一个对象图可看成一个类图的特殊用例

UML建模语言、设计原则、设计模式

文章插图
1.2.4、顺序图(时序图 / 序列图)和通信图1.2.4.1、顺序图
定义:用来表达对象间消息传递的顺序
一般来说:顺序图也叫时序图、序列图(这三个在英文中都是Sequence ) , 但是:严格来说(电子通讯方面) , 顺序图是顺序图 , 时序图 / 序列图是时序图 / 序列图(在电子通讯方面 , 这个实在要对应的话 , 就对应UML中的时间图Timing Diagram) , 在电子通讯领域这二者要表达的意思并不一样 , 但是对于我们编程这一行业来说:直接把顺序图、时序图、序列图等价也没错 , 叫其中哪一个名字都无所谓
1.2.4.2、顺序图组成
  • markdown中画时序图语法(本质是使用了mermaid脚本):https://www.imooc.com/wiki/markdownlesson/markdownsequencediagram.html
  • mermaid脚本语法:https://mermaid-js.github.io/mermaid/#/sequenceDiagram
名称说明图示参与者也叫角色 , 表示系统的用户(在系统之外 , 但与系统直接交互的对象)注:这里的用户并不一定是指人 , 如:做的是公共API接口 , 那API的调用者就是用户
UML建模语言、设计原则、设计模式

文章插图
对象就是对象图中的对象 , 可理解成某个类的实例
UML建模语言、设计原则、设计模式

文章插图
如果只显示类名 , 则:去掉上图中“对象名”即可 , 即: :某个类类型如果只显示对象名而不显示类名 , 则:去掉:及之后的即可 , 即:对象名生命线表示对象的生存时间(就是一条向下的虚线)
UML建模语言、设计原则、设计模式

文章插图
激活表示某种行为的开始或结束 , 就是一个小矩形反之:没有小矩形的那些虚线就是对象的休眠
UML建模语言、设计原则、设计模式

文章插图
消息分为同步消息 和 异步消息在UML中 , 指的是:对象与对象之间的通信在顺序图中是用 两个对象之间带箭头的线来表示注:下图真实含义是另一个 , 拆开看 , 单独只看两个带箭头的线即可 , 整个图的场景是另一个意思

经验总结扩展阅读