UML图学习之三 状态图
状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State Machine Diagram),重点在与描述状态图的控制流。
状态图侧重从行为的结果来描述(状态)
1:状态图知识点概要



2:首先我们从网上购物订单的提交到签收成功来了解学习状态图:
3:结合机房收费系统来画的状态图

状态图重点在于描述对象的状态及其状态之间的转移,状态图的基本元素主要有:状态、转移、动作、自身转移、组合状态、进入节点、退出节点、历史状态、并发区域等,状态中的事件分为调用事件(Call)、变化事件(Change)、时间事件(Time)和信号事件(Singal)。最后以实例对状态对进行了分析。
状态图还有很多知识点等着我们学习,拓展的知识面很广啊,知识真是越学觉得越广啊,开阔眼界了!加油!
状态图包含:状态与状态之间的转换、状态内部活动、超状态、并发状态
状态图的基本模型(初始状态、内部活动、转换、结束状态)

闹钟的并发正交状态图(初始状态、历史伪状态,并发)

状态图DEMO
城堡有个隐藏的宝箱,平常都是等待开启状态
当蜡烛移出烛台时,如果门是关闭的,宝箱的锁就显现出来
当钥匙转动时,如果替换了蜡烛,就打开宝箱,如果没替换蜡烛,就放出妖怪。

状态模式实现

状态表动态实现

UML图学习之三 状态图的更多相关文章
- UML图学习之二 类图
类图(ClassDiagrams)是根据系统中的类以及各类之间的关系描述系统的静态视图.类图不仅显示系统内信息的结构,还描述系统内这些信息的行为.类图的一个重要目的是为其他图(如顺序图.交互图)定义一 ...
- uml 图学习记录
UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...
- 3 学习UML图 学习DDD的基本概念
今天在学习DDD的过程中看到了大神 圣杰的博文 个人觉得非常经典 强烈推荐 在此提供url链接: UML类图10分钟快速入门 关于聚合 的理解 :一类没有紧密相关的东西聚在一起 ,分开了也可以独立存 ...
- UML类图学习
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- [Java学习]面向对象-package;内部类;UML图表示六种关系
package 软件包 类名前加入命名空间(包),解决命名冲突问题. 定义格式:公司域名倒叙.项目名.模块名; package语句写在文件第一行 使用import语句导入package java.la ...
- UML类图学习总结
1.首先来认识下类图?以及类图的作用 类图(Class diagram)由许多(静态)说明性的模型元素(例如类.包和它们之间的关系,这些元素和它们的内容互相连接)组成.类图可以组织在(并且属于)包中, ...
- 0.UML图入门——学习《大话设计模式》笔记
<大话设计模式>中讲述了UML类图的基本用法,做此笔记加深理解. 注:上图来源于<大话设计模式> 上图中设计的关键术语为:继承.实现.聚合.组合.关联.依赖. 要想弄清楚UML ...
- UML用户指南--UML图简介
本节和大家一起学习一下UML图,这里主要介绍UML结构图和UML行为图两部分,下面让我们一起看一下UML图的详细介绍吧. UML图 这里再次提到对软件体系结构进行可视化.详述.构造和文档化,有5种最重 ...
- 软考下午题详解---uml图
在上篇博客中,小编主要简单的对软考下午题当中的数据流图设计进行了一系列总结,今天我们继续来看软考下午题当中大题部分,uml图的相关知识,在我们学习的过程中,我们也已经接触过,西安交大刘惠老师讲解过um ...
随机推荐
- JavaBean入门笔记
看了JavaBean感觉很困惑,不知道什么意思,直到查看了资料发现自己理解错误,把JavaBean误当成一种技术,其实Java Bean只是符合一定规范的Java类,便于封装重用.符合这种规范的Jav ...
- jQuery 实现无限任意添加下拉菜单
新学jQuery还有很多没学,今天做了个下拉菜单,按照自己的思想结合学的基础效果实现一款可以任意添加层数的下拉菜单,如果有什么建议,欢迎指教啦啦啦 我喜欢备注细一些,这样给自己也是一种理解和方便回顾哈 ...
- UIViewController生命周期控制-开发规范
从网上各位iOS们收集并总结: 各方法使用: init 中初始化一些UI组件,比如UIButton,UILabel等 loadView 中 createFields 接受参数,初始化变量 create ...
- 【漏洞分析】dedecms有前提前台任意用户密码修改
0x00 前言 早上浏览sec-news,发现锦行信息安全发布了一篇文章<[漏洞分析] 织梦前台任意用户密码修改>,看完之后就想着自己复现一下. 该漏洞的精髓是php的弱类型比较,'0. ...
- python并开发编程之协程
一 引出协成 并发的本质是:切换+保存状态 CPU在运行行一个任务时,会在两种情况下切走去执行其他任务,一是该任务发生了阻塞,二是运行该任务的时间过长 yeild可以保存状态,yeild状态保存与操作 ...
- Canvas-图片旋转
Canvas-图片旋转 众所周知canvas是位图,你可以在里面渲染你要的东西,不过你只能操作canvas的属性来进行编辑.就是说你并不能操作画进canvas的东西,例如我在canvas里添加一幅画, ...
- [转载]Tortoise SVN使用方法,简易图解
刚到公司实习,为了版本控制,我公司使用SVN控制版本,在此记下SVN使用方法,仅供参考! 废话少说,上图! ---------------------------------- ...
- install brew cask
os x install brew cask '/usr/../../brew-cask.rb' does not exist brew 已安装完毕,安装brew cask brew install ...
- 知乎上看到的关于类.class,对象.getClass
public class TestDemo { //测试 @Test public void fun01() { TestDemo q=new TestDemo(); A a = new A(); q ...
- 用Token令牌维护微服务之间的通信安全的实现
在微服务架构中,如果忽略服务的安全性,任由接口暴露在网络中,一旦遭受攻击后果是不可想象的. 保护微服务键安全的常见方案有:1.JWT令牌(token) 2.双向SSL 3.OAuth 2.0 等 本文 ...