我有一些中间件代码从外部api获取产品列表。我正在建模响应并将响应返回给我的代码的客户端。
我的代码的任何客户都不关心退回的个别产品的细节:他们只是想要收集产品。
如何使用ddd建模?
每个产品属性是一个值对象,一个产品,一个实体和一个包含所有产品的存储库吗?
答案 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
。
现在,您应该将这些产品保留为entities
或value objects
吗?这取决于您当地的使用情况。你修改这些产品吗?如果您不修改它们,那么它们是Value objects
。
在任何情况下,您可能都必须使用repository
来保留/检索产品。