当前位置:网站首页>UML 状态图
UML 状态图
2022-07-07 12:12:00 【sinat_36789271】
一、状态图
类定义的是一组对象的抽象,而每个对象时类的一个实例,但对于一个对象而言,它在其整个生命周期中有一系列的状态。状态描绘了对象的动态生命周期。
“人” 就是一个类,而“你”、“我”、“张三” 等都是“人”这个类的一个实例,“站着”、“躺着”等都是对象的一个状态。
在对象的整个生命周期中,它的状态是会发生变化的,而状态机就是用来表示一个对象在它的生命周期中响应的时间所发生的状态变化以及对事件的响应。
二、组成元素、状态机
状态机是一个对象的局部视图、一个将对象与其外部世界分离开来并独立考查其行为的视图。状态机是精确描述行为的一种好办法。
如描述烧水器在工作时的详细行为细节:
状态:是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况。
开始状态
结束状态
命名状态
在一张状态机图中,最为核心的元素无外乎有两个:一个是用圆角矩形表示的状态;另一个是在状态之间、包含一些文字描述的有向箭头线,这些箭头成为转换。
一个转换是两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作,并在某个特定事件发生时且满足条件时进入第二个状态。
三、如何绘制状态图
绘制状态图的理想步骤:寻找主要的状态、确定状态之间的转换,细化状态内的活动与转换,用复合状态来展开细节
1、寻扎主要状态
在绘制状态机图时,最重要的一个活动就是寻找出主要的状态。对于航班机票预订系统而言,显然包括的状态主要有:
a、在确定飞行计划时,显然是没有任何预订的,并且在有人预订机票之前都将处于这种“无预订”状态
b、对于订座而言,显然有“部分预订”和“预定完”两种状态
c、当航班快要起飞时,显然要“预订关闭”
总结:有四种状态:无预定、部分预订、预定完和预订关闭
2、确定状态之间的关系
确定主状态之后分析状态之间的转换,画出相应的状态机图
边栏推荐
- Laravel form builder uses
- [daily training] 648 Word replacement
- 566. 重塑矩阵
- 作战图鉴:12大场景详述容器安全建设要求
- PHP中用下划线开头的变量含义
- Help tenants
- Realize the IP address home display function and number home query
- IP and long integer interchange
- Oracle advanced (V) schema solution
- SSRF vulnerability file pseudo protocol [netding Cup 2018] fakebook1
猜你喜欢
使用day.js让时间 (显示为几分钟前 几小时前 几天前 几个月前 )
2022-7-6 Leetcode27. Remove the element - I haven't done the problem for a long time. It's such an embarrassing day for double pointers
The delivery efficiency is increased by 52 times, and the operation efficiency is increased by 10 times. See the compilation of practical cases of financial cloud native technology (with download)
Transferring files between VMware and host
社会责任·价值共创,中关村网络安全与信息化产业联盟对话网信企业家海泰方圆董事长姜海舟先生
Deep understanding of array related problems in C language
566. 重塑矩阵
Xshell connection server changes key login to password login
Help tenants
Redis can only cache? Too out!
随机推荐
Battle Atlas: 12 scenarios detailing the requirements for container safety construction
Details of redis core data structure & new features of redis 6
2022-7-6 Leetcode27.移除元素——太久没有做题了,为双指针如此狼狈的一天
使用day.js让时间 (显示为几分钟前 几小时前 几天前 几个月前 )
call undefined function openssl_cipher_iv_length
带你掌握三层架构(建议收藏)
The meaning of variables starting with underscores in PHP
Move base parameter analysis and experience summary
Wired network IP address of VMware shared host
postgresql array类型,每一项拼接
Sliding rail stepping motor commissioning (national ocean vehicle competition) (STM32 master control)
交付效率提升52倍,运营效率提升10倍,看《金融云原生技术实践案例汇编》(附下载)
c#通过frame 和 page 切换页面
[high frequency interview questions] difficulty 2.5/5, simple combination of DFS trie template level application questions
Lavarel之环境配置 .env
FCOS3D label assignment
Evolution of customer service hotline of dewu
請問,在使用flink sql sink數據到kafka的時候出現執行成功,但是kafka裏面沒有數
属性关键字Aliases,Calculated,Cardinality,ClientName
2022-7-6 Leetcode27. Remove the element - I haven't done the problem for a long time. It's such an embarrassing day for double pointers