查看原文
其他

[答疑]大老二和德州扑克-属性值没变,状态怎么变了

潘加宇 UMLChina 2024-03-10
DDD领域驱动设计批评文集
做强化自测题获得“软件方法建模师”称号
《软件方法》各章合集

邬俊杰 2023-10-31 21:20
课上说状态是由属性值决定的,比如身高>170算高,某人身高175,算高。如果规则改了,身高>180算高,某人身高没变,但现在不算高了。属性值没变,状态变了,这还算是由属性值决定吗?

UMLChina潘加宇

算。

由属性值决定,又没有说怎么决定,状态=f(x,y,z),x,y,z没变,f变了,结果还是由x,y,z推出,但可能不是原来那个结果。而且,这种变化是规则上的变化,影响的是所有的实例,影响远比某个对象的属性值变化引起的状态变化要激烈。

状态机是描述类的规则的一种形式,有了规则之后,所有对象按照规则行事。对象的属性值改变,对象可能会从一个状态转到另一个状态,但状态机图本身是不变的。

而规则的改变,则是换了一张新的状态机图。“>170算高改为>180算高”这种改动只是微调,改动的可能是迁移上的警戒条件。激烈的改动,有可能“高”的状态就从状态图机上直接消失了,这时还谈什么高不高的。

用玩扑克牌类比。抓牌抓到的都是一张黑桃2,玩大老二(锄大地)的人会很开心,觉得拿到了“强”牌,但玩德州扑克的就可能不开心了,觉得拿到的是“弱”牌。


[3级]类的精细建模高阶+10月30-11月1日晚8点网络公开课

[架构师强化]11月6-8晚8点企业应用架构模式新解-网络公开课

[架构师强化]11月13-17晚8点分析设计高阶网络公开课(原“剔除伪创新的领域驱动设计”)

[EA-029/石油钻井管理平台]35套UML/SysML+EA/StarUML的建模示范视频-全程字幕
如何选择UMLChina服务
作者微信:umlchina2
继续滑动看下一个

[答疑]大老二和德州扑克-属性值没变,状态怎么变了

潘加宇 UMLChina
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存