背景
当有新人接手你的项目时候,你是否有足够的项目结构介绍资料给到新人? 当你作为一个新人接手别人的项目的时候,看项目的结构图的时候是否会一脸懵逼,因为你没有系统的学习UML相关的知识。了解UML图的绘制一方面可以检查自己的代码设计,并能向他人进行讲解。
介绍常见的箭头类型
如上图我们从左往右依次介绍一下,分别是 依赖关系,关联关系,继承关系,实现关系,聚合关系,组合关系
依赖关系:所谓依赖关系就是你这个类要能执行必须依赖另外一个对象,这样你可以把箭头指向这个类
关联关系:就是你这个类会使用到另外一个类,但是不是一定要用这个类。
继承关系:你这个类需要继承另外一个类
实现关系:你这个类会实现某个接口类
聚合:聚合表示一种弱拥有关系,体现的是A对象可以包含B但是B对象不是A对象的一部分,例如燕群可以包含一只燕,但是燕子也可以自己一个
组合:合成是一种强拥有关系,体现了严格的部分和整体关系,例如人是又器官组成的,器官离开了人不可以存活
分别举个例子
依赖关系:
我们可以看到这个类的实现必须要依赖AndroidPhone这个类
继承关系:
实现关系
聚合与组合
记住聚合跟组合的区别就是在两个类是否可以独立工作
活动图
圆角矩形:表示“动作”
菱形:表示“决策”
粗实线:表示并行活动的开始(分离)和结束(汇合)
黑圆:工作流的开始(初始节点)
黑圈套住的黑圆:工作流的结束(结束节点)
活动图的一些规则
第一个粗实线之后可以有若干分支,每个分支都是并行执行的
• 第二个粗实线之前,所有的分支汇合,所有的分支活动都完成才进入之后的环节
• 初始节点有且只有一个,结束节点可能不止一个
一些注意事项:
• 当有多个对象出现在活动图中时,可以考虑引入泳道
• 一个活动只能存在于唯一的泳道里
时序图
对象的三种命名方式:
显示实例名和类名,方式:实例名:类名
只显示类名,表示它是一个匿名对象,方式::类名
只显示实例名,方式:实例名
同步消息:消息的发送者把消息传递给接收者后停止活动,等待消息的接收者放弃或者返回消息,之
后才能执行下一步操作
• 异步消息:消息的发送者把消息传递给接收者后继续自己的活动,不等待接受者放弃或者返回消息
组合片段(Combined Fragments) • 抉择(Alt):与 if…then…else 对应
• 选项(Opt):表示符合条件时执行
• 循环(Loop):与 for 或者 foreach 对应
• 并行(Par):与多线程对应