团队沟通利器之UML—— 序列图
一:用途
对一个开发团队来说,序列图是非常重要的,因为序列图用于描述系统内部一群对象之间的交互情况,尤其在做爬虫这种
业务复杂性的项目,序列图可以让我们更快的理清这些复杂流程。
二:基本元素
序列图中的uml元素还是相对比较少的,先截个图。
1:生命线
首先我们要知道序列图有一种动静结合的特点,以类图作为静态结构,用例图作为动态行为的过程。所以我们可以认为生命线
就是一个类,比如下图中,customer:Customer ,前者是类的实例,后者是类名,图中的“X”是类的析构函数,也就是销毁。
这里有一个注意的地方,我们将图中的”Actor“属性设为True是,该生命线就会变成参与者生命线。
2:同步,异步
说起同步或者异步,我想大家第一反应可能就是ajax或者Thread,既然序列图是描叙对象之间的交互就必然存在同步
或者异步,在uml元素中,“同步”是具有来去箭头的,而”异步“就是单向箭头。
从上面的序列图中,我们可以看出Customer向Order下订单,下单成功后同时异步请求email发送邮件,既然是异步,也就不
存在影响主流程了。
3:创建
在交互段内如果要创建别的生命线(类对象),那么此时需要使用创建消息,不过在实际应用中用的还是比较少的,毕竟万事
万物遵循”八二原则“的。
在vs2010里面有支持序列图的”反向工程“,蛮有意思的,我们先看一下,我在Program里面实例化了一个Test类,看看在序列
图中是否用Create来实现。
4:组合片段
现在我们也知道了,序列图中是一群对象在交互,那么交互必然存在着逻辑,比如if/else,for等等,在uml中有12中这样的业务
逻辑的组合片段,同样八二原则,了解一些常用的即可。
通过对比两张图,我想大家肯定清楚下面的那张序列图所表达的意思。
最后上一张综合一点的图,有了上面的简述,我想这张图大家应该也能看得懂。
相关文章
- Redis被问到哭?看完这篇,她站起来了……
- Redis-技术专区-帮从底层彻底吃透RDB技术原理
- Mybatis-技术专区-如何清晰的解决出现「多对一模型」和「一对多模型」的问题
- 🏆【JVM技术专区】「难点-核心-遗漏」TLAB内存分配+锁的碰撞(技术串烧)!
- 🏆【Alibaba微服务技术系列】「Dubbo3.0技术专题」回顾Dubbo2.x的技术原理和功能实现及源码分析(温故而知新)
- 【微服务技术专题】Netflix动态化配置服务-微服务配置组件变色龙Archaius
- 🏆【JVM技术专区】「虚拟机专题」JDK/JVM的新储君—GraalVM和Quarkus
- Alibaba-技术专区-RocketMQ 延迟消息实现原理和源码分析
- 【SpringBoot技术专题】「JWT技术专区」SpringSecurity整合JWT授权和认证实现
- Alibaba-技术专区-Dubbo3总体技术体系介绍及技术指南(目录)
- Alibaba-技术专区-Dubbo3总体技术体系介绍及技术指南(序章)
- SpringBoot-技术专区-用正确的姿势如何用外置tomcat配置及运行(Tomcat优化分析)
- 【SpringCloud技术专题】「原生态Fegin」打开Fegin之RPC技术的开端,你会使用原生态的Fegin吗?(下)
- 【SpringCloud技术专题】「原生态Fegin」打开Fegin之RPC技术的开端,你会使用原生态的Fegin吗?(中)
- 【SpringCloud技术专题】「原生态Fegin」打开Fegin之RPC技术的开端,你会使用原生态的Fegin吗?(上)
- 🏆(不要错过!)【CI/CD技术专题】「Jenkins实战系列」(4)jenkins+pipeline构建自动化部署
- 🏆(不要错过!)【CI/CD技术专题】「Jenkins实战系列」(3)Jenkinsfile+DockerFile实现自动部署
- 【Maven实战技巧】「插件使用专题」Maven-Assembly插件实现自定义打包
- [书单]
- MySQL-技术专题-innodb存储引擎