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

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时,都希望转到历史子状态,就难说了。

相关推荐
老郑聊AI业财智造10 小时前
给大模型装上“金融之眼”:Kronos-Report的量化预测架构与技术全景剖析
人工智能·python·深度学习·语言模型·金融·架构·软件工程
梁辰兴1 天前
软件工程:UML 的表示法
软件工程·uml·梁辰兴·uml的表示法·类图表示法·对象图表示法·用例图表示法
电子科技圈1 天前
IAR与东软睿驰达成战略合作,强化软件开发效率与生态协作
设计模式·开源·软件工程·软件构建·代码规范·设计规范·代码复审
皮卡丘不断更2 天前
Vibe Coding 有了接口原型后:用智能体做一份联调差异单
软件工程·智能体·vibe coding·接口联调
Dola_Zou2 天前
深入拆解 CmActLicense: 工业级“软授权”的架构设计与安全实践
安全·软件工程·软件加密
帅次2 天前
Git 常用命令汇总
git·软件工程·开发工具·版本控制·git教程·代码管理·git命令
梁辰兴2 天前
软件工程:对象模型技术方法简介
软件工程·梁辰兴·方法比较·对象模型技术方法简介·omt方法定义·三个模型·omt过程
老郑聊AI业财智造2 天前
Spring AI 技术架构与源码分析
java·人工智能·后端·spring·架构·软件工程
xierui1231232 天前
AI创作工作流状态管理:为什么保存 Prompt仍然无法复现作品
人工智能·自动化·prompt·aigc·软件工程
皮卡丘不断更2 天前
Vibe Coding 做完原型后:给网页项目加上任务、验证和人工确认
人工智能·软件工程