UML语言的定义
UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言
主要包含下面的模型:
- 功能模型:从用户的角度展示系统的功能,包括用例图
- 动态模型:展现系统的内部行为,包括序列图、活动图、状态图
- 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图
我们在看C++ 代码时,比较常用的是序列图和类图
类图的基本元素
含义:类图(class Diagrams),是描述系统中的类,以及各个类之间的关系的静态视图,常用于表示类、接口和它们之间的协作关系
内容:为清晰表示类之间关系,类图包含有接口实现、继承、依赖、关联、聚合、组合等关系;
实现关系一般特指接口的实现,或者抽象类的实现;实现和继承关系都是范化关系的一种;
聚合、组合也是关联关系的一种,聚合关系是一种弱的关联关系:比如轮胎和发动机可以聚合成为汽车,但是它们也可以单纯存在;组合关系是一种强的关联关系,比如学生组合成为班级,学生必须在班级里

继承关系/接口实现
继承:绘制方法为实线+空三角箭头(箭头指向父类)
接口实现:绘制方法为虚线+空三角箭头(箭头指向实现的接口)
tips:箭头都是指向父类

依赖关系
依赖关系是一种使用关系,一个类的实现需要另一个类的协助,常见形式就是在类A的方法中直接调用了类B的方法,或者类A的函数参数中包含了类B的指针
绘制方法为虚线+ 虚线箭头

Tips: BpBinder的remoteBinder 函数调用了IPCThreadState 的方法
关联关系
表示一种拥有的关系,它使一个类知道另一个类的属性和方法,*常见的形式就是类A的属性中包含类B的指针或引用
绘制方法为实线+实线箭头

聚合组合关系
聚合、组合关系都隶属于关联关系,是整体与部分的关系
聚合:表示弱的拥有关系,部分可以离开整体而单独存在,例如大雁群包含数只大雁,每一只大雁都可以独立于群体生存,绘制方法为空菱形+实线+实线箭头
组合:表示强的拥有关系,但部分不可离开整体单独存在,例如鸟必须有一双翅膀。绘制方法是实心菱形+实线+实线箭头

tips:箭头都是指向整体的类型
时序图
时序图,也叫序列图,顺序图,用于表述多个对象参与业务目标时,彼此之间按时间顺序进行交互的流程

时序图的基本元素
- 对象和生命线
- 会话或者控制焦点(生命线上的矩形线)
- 发送消息(从左到右的实线)
- 返回消息(从右到左的虚线)
注意发送的消息可以分为 Call,create,destroy,send 这几种
消息也要注意区分同步消息,异步消息,自关联消息
- 同步消息必须等对象处理完成才能返回
- 异步消息则可以立刻返回,等到对象B处理完成再通知到对象A
- 自关联消息是发送到对象内部的消息,比如发送到对象内部的消息队列
