[答疑]把缺省伪状态和历史伪状态合并可行吗

DDD领域驱动设计批评文集

做强化自测题获得"软件方法建模师"称号

《软件方法》各章合集


veggieg 2026-4-29 15:05

这样画状态图

没有历史的时候,会转到H指向的B1,B1刚好是B的初始态,我省去黑点指向B1不画,统一用H,这样可行吗?

UMLChina潘加宇

可行是可行,只要能防住不让后面的人把迁移指向B的边界,就是合法的。

(也可以修改规范,既然缺省大黑点没有了,就可以把指向B的边界的迁移解释为指向H,然后把图上所有指向H的迁移改为指向B的边界。)

不过,和原来的意思有差别。就像我每餐不吃两碗米饭了,吃两个馒头行不行,当然行,但不是一个东西。

我把缺省子状态补上,对比一下:

最开始的时候是一样的,没有历史就迁移到B1。

但下次从B退出,就有历史了,那么每次进入B,都要回到离开前所在的子状态。如果这是你想要的,那就没问题。

有个麻烦:如果想下次进入B时迁移到B1,就得在离开前把状态转到B1再离开,因为这时B1才成为历史子状态。

一个值得画的状态机,进入一个状态和离开一个状态的事件可能会有多个(也就是说,图上这样画A、转A、B、转B属于伪创新的一一对应刷废话),是不是通过每一个事件迁移到B时,都希望转到历史子状态,就难说了。

相关推荐
精益数智小屋8 小时前
项目管理看板如何拆解任务进度?项目管理看板解决跨部门协作难题
大数据·人工智能·数据分析·云计算·软件工程
zhaoshuzhaoshu12 小时前
嵌入式开发之IIC接口详解-STM32
嵌入式硬件·软件工程
道一云黑板报15 小时前
告别提示词工程:为什么“循环工程”才是 AI 编程的未来?
人工智能·驱动开发·软件工程·ai编程
Dola_Zou1 天前
边缘智能的“黑暗森林”:工业 AI 模型下沉的资产防护与变现密码
人工智能·安全·自动化·软件工程·软件加密
精益数智小屋2 天前
拆解项目管理计划的核心功能:用项目管理计划解决跨部门协作难题
大数据·人工智能·数据分析·云计算·软件工程
rolt3 天前
[pdf]406页《分析模式》漫谈文集202606更新
ddd·架构师·uml·领域驱动设计
weixin_424813753 天前
05-职业发展-数字孪生架构师能力图谱2026从技术专家到价值创造者进阶指南
职业发展·架构师·数字孪生·ai时代·技能提升
sensen_kiss3 天前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.8 软件测试 (Software Testing)(上)
学习·软件工程
sensen_kiss3 天前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.9 软件测试 (Software Testing)(下)
学习·软件工程