UML建模语言、设计原则、设计模式( 七 )


1.2.4.3.1、条件分支 alt

UML建模语言、设计原则、设计模式

文章插图
1.2.4.3.2、可选项 opt
  • 包含一个可能发生或不发生的序列

UML建模语言、设计原则、设计模式

文章插图
  • 只要当我成绩score小于60时,老妈打我这件事情肯定会发生 。大于就不会发生
1.2.4.3.3、循环 loop
  • 图是网上偷的,看懂了分支,那循环也能很容易看懂了

UML建模语言、设计原则、设计模式

文章插图
1.2.4.3.4、并行 par
UML建模语言、设计原则、设计模式

文章插图
1.2.4.4、顺序图实例
  • SpringMVC执行流程原理

UML建模语言、设计原则、设计模式

文章插图
  • 转化为顺序图

UML建模语言、设计原则、设计模式

文章插图
1.2.4.5、通信图
  • 通信图和顺序图可以等价互转
  • 通信图牺牲了顺序上的直观性,增强了布局和关联上的直观性;而顺序图是相反的
  • 要搞逻辑就看序号(1:1.1:2:2.1:..........)
  • 假如一个序列图如下:

UML建模语言、设计原则、设计模式

文章插图
  • 转化为通信图(两张图对照看就懂了):

UML建模语言、设计原则、设计模式

文章插图
1.2.5、状态图 / 状态机图 / 转移图
定义:状态图又名状态机图或转移图,指的是:一个特定对象的所有可能的状态以及引起状态转换的事件一个对象必然会经历一个从开始创建到最终消亡的完整过程,这称之为对象的生命周期 。对象在其生命周期内是不可能完全孤立的,它必然会接受消息来改变自身,或者发送消息来影响其他对象 。而状态机就是用于说明对象在其生命周期中响应时间所经历的状态序列以及其对这些事件的响应 。在状态机的语境中,一个事件就是一次激发的产生,每个激发都可以触发一个状态转换
1.2.5.1、状态图的组成
  • 一份简单的状态图

UML建模语言、设计原则、设计模式

文章插图
状态图组成
名称说明状态指的是对象在其生命周期中的一种状况,处于某个特定状态中的对象必然会满足某些条件、执行某些动作或者是等待某些事件动作指的是状态机中可以执行的哪些原子操作原子操作:指的是他们在运行的过程中不能被其他消息中断,必须一直执行下去,以至最终导致状态的变更或者返回一个值事件指的是发生在时间和空间上对状态机来讲有意义的那些事情事件通常会引起状态的变迁,促使状态机从一种状态切换到另一种状态活动指的是状态机中做的那些非原子操作转移指的是两个不同状态之间的一种关系,表明对象在第一个状态中执行一定的动作,并且在满足某个特定条件下由某个事件触发进入第二个状态1.2.5.2、状态图的五要素
UML建模语言、设计原则、设计模式

文章插图
注意:
  • 上图中“触发事件”和“监护条件”要同时生效的,即:只有“触发事件”满足“监护条件”,才能执行“动作”,从而让第一个状态转移为第二个状态
    • “监护条件”写法就是[监护条件][]不能丢
  • 上图中整个“带箭头的三角的实线(单纯地这根线)”就是“转移”,或者称之为:行为状态也行
  • 上图中整个“带箭头的三角的实线+上面的触发事件[监护条件]/动作”就是事件,其中:触发事件[监护条件]/动作 三者少哪一个都行,甚至全没有也行
1.2.5.3、状态图中的状态注:初态和终态都不是真正的状态,而是:伪状态
名字说明图示初态一个状态图有且只有一个初态黑色实心
UML建模语言、设计原则、设计模式

文章插图
终态一个状态图中可以有一个或多个终态,也可以没有终态一对同心圆(内圆为实心圆)
UML建模语言、设计原则、设计模式

文章插图
中间态用圆角矩形表示,可以用一条水平横线把它分成上、下两部分 。(上面部分为状态的名称[必有];下面部分是活动表[可选])有些软件是分成了三部分:上面部分为状态的名称(必有);中间部分为状态变量的名字和值(可?。幌旅娌糠质腔疃恚裳 。?/td>

推荐阅读