团队沟通利器之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中这样的业务
逻辑的组合片段,同样八二原则,了解一些常用的即可。
通过对比两张图,我想大家肯定清楚下面的那张序列图所表达的意思。
最后上一张综合一点的图,有了上面的简述,我想这张图大家应该也能看得懂。