域对象和基础结构依赖性

时间:2013-05-28 08:21:06

标签: java spring design-patterns domain-driven-design

我们有一个域对象(比如一个平面)和业务流(stateMachine对象)。在一个事件(失败)我们想要将状态从飞行变为下降。并且不知道什么是建模它的最佳方式。 我不想制作方法plane.setState(),因为它应该是平面的内部状态

其他选项是使用spring @Configurable将stateMachine注入平面并创建方法plane.failure()但它需要一个jvm代理,它可能不适用于eclipse和单元测试

第三个选项是让方法plane.failure(stateMachine)看起来很丑,但似乎有用

还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

如果您不想通过State方法在外部公开对象的setState(),那么您需要通过假设{{1}以某种方式将Event传达给它} 方法。从那时起,根据发生的事件设置自己的 State 对象的内部事务。据推测, State Event 都是某种枚举,而 State 枚举是在域对象内部定义的。我甚至会考虑在中间抽象类中提取 State 枚举逻辑和转换。