问题:从存储库中重新合成聚合的最佳,有效和面向未来的方法是什么?提供方式的专家和内容是什么,我的看法是否正确?
假设我们有一个带私有setter的Aggregate Root,但是有一个用于访问状态的公共getter
行为是通过聚合根上的方法完成的.
指示存储库加载聚合.
目前我看到了几种可能的方法来实现这一目标:
1)Jimmy Bogard暗示他的工具Automapper不适用于双向映射.但有些人认为我们必须务实,以一种帮助你的方式使用工具.
对我来说,我不喜欢通过反射完全补液.也许Automapper存在,或者聚合根被弯曲,这样就可以完成映射(参见Vaughn对他的文章的一些评论).
2)创建用于补液的构造因子,具有几个参数,因此聚集体的状态以正确的方式再水合.
这几个参数可以扩展(=新构造函数)或定义可以更改.我喜欢这种方法,除了有一堆参数的部分.
3)状态是聚合根的属性.状态被封装在一个新对象中,该对象由存储库构建,然后被提供给聚合根以获得正确的init.
有些人认为构建这个状态对象是更多的工作(新类,实体上的状态属性暴露和聚合根来强制执行业务规则),但它提供了一种初始化状态的简洁方法.
假设我们需要事件源,加载状态是否类似于加载事件?状态对象是否提供了处理事件的方法?它是未来的证据吗?