DDD - 值对象的集合

时间:2017-04-17 15:29:27

标签: domain-driven-design value-objects

我有一些中间件代码从外部api获取产品列表。我正在建模响应并将响应返回给我的代码的客户端。

我的代码的任何客户都不关心退回的个别产品的细节:他们只是想要收集产品。

如何使用ddd建模?

每个产品属性是一个值对象,一个产品,一个实体和一个包含所有产品的存储库吗?

3 个答案:

答案 0 :(得分:0)

为什么不使用CQRS(https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs)。

将模型分为读写模型。在您的情况下,阅读模型将做。让他们成为POCO。在阅读方面,我们不需要使用DDD战术建模工具。

有关详细信息,请访问我提供的链接。

答案 1 :(得分:0)

我认为你几乎就在那里,你的中间件(外部api)可以是一个存储库,通过查找方法和返回产品模型。

建议将存储库作为接口(例如ProductRepository),以使代码更易于测试。您可以使用简单的测试实现(例如ProductRepositoryTestImpl)和中间件通信的主要实现(例如ProductRepostioryImpl)。

对于包装,我更喜欢这个:

get()

答案 2 :(得分:0)

你应该看到外部api像external bounded context。您的local bounded context将使用anti-corruption layer将条款从远程转换为本地有界上下文。因此,您的代码实际上是anti-corruption layer

现在,您应该将这些产品保留为entitiesvalue objects吗?这取决于您当地的使用情况。你修改这些产品吗?如果您不修改它们,那么它们是Value objects

在任何情况下,您可能都必须使用repository来保留/检索产品。