1

我们有一个领域对象(比如说飞机)和业务流程(stateMachine 对象)。在事件(失败)上,我们希望将状态从飞行更改为下降。并且不知道建模它的最佳方法是什么。我不想做方法plane.setState(),因为它应该是飞机的内部状态

另一种选择是使用弹簧@Configurable 将 stateMachine 注入平面并创建方法plane.failure(),但它需要 jvm 代理,并且它可能不适用于 eclipse 和单元测试

第三种选择是制作方法plane.failure(stateMachine)看起来很丑但似乎有效

还有其他想法吗?

4

1 回答 1

0

如果您不想State通过方法在外部公开对象的 ,setState()那么您需要以某种方式Event通过方法与它进行通信eventOccured(Event)。从那时起,对象的内部事务根据发生的事件设置自己的状态。可能StateEvent都是某种枚举,并且State枚举是在域对象中内部定义的。我什至会考虑在中间抽象类中提取状态枚举逻辑和转换。

于 2013-05-28T09:55:48.943 回答