DDD受ActiveObjects框架的约束

时间:2014-06-05 18:08:28

标签: java domain-driven-design

我的团队决定在我们正在开发的新应用中尝试DDD方法。 我们面临的障碍之一是我们的平台 - 我们被迫使用ActiveObjects ORM框架(https://developer.atlassian.com/display/DOCS/Getting+Started+with+Active+Objects)。

鉴于DDD本身就是一个巨大的话题,这种约束的存在会使事情变得更加复杂。主要问题是通过ActiveObjects将域模型实体属性的更改传播到持久性存储。我们可以考虑哪些好的解决方案?

1 个答案:

答案 0 :(得分:0)

ORM是一个持久性细节,即与域(不同层)完全无关。 DDD不是一个很大的话题。这是一种简单的心态,难以理解并且非常依赖于技能(这不是“如何”方法)。

DDD使用存储库来处理与持久性相关的所有内容。域只能看到存储库(仅抽象),而不是db,orm等。存储库使用ORM。正确封装的域对象可能不容易映射到ORM,并且您需要针对这些情况使用不同的方法(memento模式是一个干净但昂贵 - 无聊 - 维护解决方案)。但实质是Domain不了解ORM,而Repository负责持久化/检索域对象(使用ORM)。

您还应该使用CQRS,您不希望为UI设计业务对象或报告查询。