小编R.L*_*tto的帖子

DDD和依赖注入上下文中的实体的状态机?

我一直在研究Spring State MachineState设计模式,因为我必须开发一个带有Spring Boot的微服务,并且需要清除许多混乱状态的持久对象,我正在寻找一个干净的设计解决方案.一塌糊涂.我检查了DDD,状态概念和状态机,看看要应用哪些

我不确定如何实现一些概念,以及如何连接它们.我想了解是否:

  1. Spring State Machine可以在转换期间或仅在全局应用程序状态级别上处理实体吗?
  2. 要管理每个处于自己状态的多个实体,是否必须将其创建为原型作用域组件?
  3. 它是否可以轻松地与State模式集成,还是不能一起使用?
  4. 为了管理这个,我应该将状态机或状态机注入到实体中(可行,我知道,但我不喜欢使用@Configurable和适当的AspectJ编织配置的想法)?我分享某人的印象,它可能使它更复杂,也许我将不得不使用@Scope("prototype")
  5. 相反,如果有可能让域服务委托每个实体的状态机(所以另一个域服务)为单个实体更改状态?或者这是贫穷的域反模式,但如果是这样,State Machine与DDD的集成程度如何?
  6. 有没有关于Spring State Machine如何允许我做我想做的事情,它有多轻量,以及它会有多慢和耗费内存的例子?

我得到了: - DDD想要具有更多功能的域对象,这些功能简单,数据对象就像这个相当完整,但有关DDD的一篇有点过时的文章 - 状态模式应该封装Context元素在特定情况下应该如何表现 - 状态机是关于将一个国家与另一个国家之间的通道管理封装起来 - 如果它们一起工作,国家不应该指定哪个是特定指令的下一个国家,而是为国家机器和国家机器选择产生一个事件(或阻止是否有些卫兵失败了)新的国家 - 不知何故,新的国家必须由国家机器在上下文中设定

通常,Context对象应该直接委托给State对象.但是由于状态机决定了对象状态的变化,在这种情况下,Context是否应该委托给某种代理状态?应该将/ State机器注入实体还是代理?

任何想法,建议,甚至对其中一些问题的部分答案都将非常感激.

顺便说一句我

domain-driven-design jpa state-machine spring-statemachine

6
推荐指数
1
解决办法
1198
查看次数