您当前的位置: 首页 >  答疑

rolt

暂无认证

  • 0浏览

    0关注

    780博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

[答疑]历史状态指向别的状态有什么用,没有历史是不是应该回到初始状态

rolt 发布时间:2022-04-15 16:48:45 ,浏览量:0

DDD领域驱动设计批评-文集-点击查看>>

(匿) 2022-4-11 12:36

课后复习已三刷,觉得已经理解老师的讲解,可以提问了图片

图片

这道题根据老师的讲解,在C2发生e5会转到A,这个我理解了。如果接下来从A经另一条路线到达E然后再e1转历史状态,那还是回到C2吗?

还有,历史状态指向别的状态有什么用,没有历史是不是应该回到初始状态?

UMLChina潘加宇

这个问题问得好,说明你确实是理解了并且在此基础上提出了真正的问题。

第一个问题,应该是到达C1。

这个情况和题目中在C2发生e4到达E后再通过e1回到历史不同。

在C2发生e5,迁移到C的终态,引发C的完成迁移到A。最后离开C的迁移是C→A,已经不能算是从C2离开C了。

另外,历史是C的历史,C进入终态,C的历史应该被清除。按照你说的另一条路的场景,在E发生e1时,C应该没有历史,因此迁移到历史状态指向的C,C的缺省状态是C1。

第二个问题我答不上来。

也许是为了再多一种选择吧,毕竟含义有区别。一个是未指明子状态时的缺省状态,一个是不存在历史状态时的缺省历史状态。

问题所给图中,历史状态指向C,所以这两者是相同的。如果历史状态没有缺省指向任何状态,那么两者也是相同的。如果历史状态缺省指向C2,就会不一样。

这只是我的猜测。《UML参考手册》第2版关于历史状态的解释如下,没有涉及以上内容。

图片

微信:umlchina2

关注
打赏
1665360646
查看更多评论
立即登录/注册

微信扫码登录

0.1020s