DDD实施-存储库和工厂

时间:2018-11-20 14:23:58

标签: java domain-driven-design

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

  1. 我有带用于存储库接口的域模型,存储库具有在基础结构层(IoC)中实现的接口。
  2. 我希望只有聚合根类和接口才将包范围设为public。实体,域服务,VO应该具有私有的包范围。

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

我的问题是:

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

1 个答案:

答案 0 :(得分:1)

  

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

也许您正在寻找端口和适配器的架构模式。

通常的方法-将业务和基础结构代码放在相同的软件包中,但放在不同的模块

您甚至可以在没有公共获取者/设置者的情况下将AR设为非公开。

示例:

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

看看

代码中的领域模型示例: 汇总ProductDemand 实体DailyDemand

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

现在查看模块 demand-forecasting-adapters 中的软件包 io.dddbyexamples.factory.demand.forecasting ,您将看到基础设施障碍

相关问题