【问题标题】:DDD implementation - repository and factoryDDD 实现 - 存储库和工厂
【发布时间】:2019-04-23 00:30:54
【问题描述】:

我用 java 编写并尝试使用 DDD。

  1. 我有带有存储库接口的域模型,存储库具有在基础设施层 (IoC) 中实现的接口。
  2. 我希望只有聚合根类和接口具有公共包范围。实体、域服务、VO 应具有私有包范围。

应用架构(接口是控制器、GUI 等)

我的问题是:

  • 如何在没有 getter 的情况下将数据从聚合根目录保存到数据库。我只想有干净的商业行为。也许我的聚合根应该创建 DTO 对象?(但有气味)
  • 工厂应该在域包、应用程序中还是应该在域包中有接口?

【问题讨论】:

标签: java domain-driven-design


【解决方案1】:

如何在没有 getter 的情况下将数据从聚合根目录保存到数据库。我希望只有 >clean buissnes 行为。也许我的聚合根应该创建 DTO 对象?(但是是气味)

您可能正在寻找端口和适配器架构模式。

通常的方法 - 将业务和基础设施代码放在同一个包中,但放在不同的模块中

您甚至可以在没有公共 getter/setter 的情况下将您的 AR 设为非公开。

例子:

https://github.com/ddd-by-examples/factory

看看

代码中的领域模型示例: 总产品需求 实体 DailyDemand

在描述中 - ProductDemand 和 DailyDemand 不公开,放置在 io.dddbyexamples.factory.demand.forecasting 包的 demand-forecasting-model 模块中

现在查看模块 demand-forecasting-adapters 中的包 io.dddbyexamples.factory.demand.forecasting ,您将看到基础架构实现

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多