白菜Java自习室 涵盖核心知识微信
时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它经过描述对象之间发送消息的时间顺序显示多个对象之间的动态协做。多线程
序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴表明了在协做中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。消息用从一个对象的生命线到另外一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。并发
咱们在画时序图时会涉及7种元素:角色(Actor)、对象(Object)、生命线(LifeLine)、控制焦点(Activation)、消息(Message)、自关联消息、组合片断。异步
其中前6种是比较经常使用和重要的元素,剩余的一种组合片断元素不是很经常使用,可是比较复杂。咱们先介绍前6种元素,在单独介绍组合片断元素。oop
系统角色,能够是人或者其余系统,子系统。以一个小人图标表示。post
对象位于时序图的顶部,以一个矩形表示。对象的命名方式通常有三种:微信支付
时序图中每一个对象和底部中心都有一条垂直的虚线,这就是对象的生命线(对象的时间线)。以一条垂直的虚线表。spa
控制焦点表明时序图中在对象时间线上某段时期执行的操做。以一个很窄的矩形表示。线程
表现表明对象之间发送的信息。消息分为三种类型。
表示方法的自身调用或者一个对象内的一个方法调用另一个方法。以一个半闭合的长方形+下方实心剪头表示。
组合片断用来解决交互执行的条件和方式,它容许在序列图中直接表示逻辑组件,用于经过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。组合片断共有13种,名称及含义以下:
抉择在任何场合下只发生一个序列。 能够在每一个片断中设置一个临界来指示该片断能够运行的条件。else 的临界指示其余任何临界都不为 True 时应运行的片断。若是全部临界都为 False 而且没有 else,则不执行任何片断。Alt 片断组合能够理解为 if...else... 条件语句。
包含一个可能发生或不发生的序列。Opt 至关于 if... 语句。
片断重复必定次数,能够在临界中指示片断重复的条件。Loop 至关于 for 语句。
并行处理,片断中的事件能够并行交错。Par 至关于多线程。
所谓划清边界是是指要肯定好绘制时序图的范围。在微信支付例子中省略列商家打开微信、输入收款金额等交互消息,这些不是咱们须要体现的,咱们主要体现的是用户的扫码支付流程。
所谓识别交互语境就是要知道本身绘制时序图的前提和背景。在微信支付的例子中用户登陆了微信、开通了支付功能是前提,背景是用户须要扫描付款买东西。
微信支付的例子中角色只有一个,即用户。对象有华为手机:手机、安卓版微信:微信、:商家。
对象之间交互的消息详见以上时序图。