如果我的域模型中的逻辑依赖于第三方组件或某些内部自定义库/ manager .dll,是否可以创建此依赖项?我显然对我的域层的任何外观或持久层没有依赖/依赖,但我很好奇其他类型的依赖是否破坏了DDD的任何规则?
答案 0 :(得分:4)
在DDD中,此类场景使用anti-corruption layer处理。这基本上需要的是您将第三方API封装在存储库或域服务之后。您可以创建第三方API的本地模型,然后可以与域层的其余部分集成。
答案 1 :(得分:4)
一般来说,我同意this answer,如果是第三方库
,尤其如此但是我认为某些第三方库可以直接从您的域代码中引用(否则您将无法使用内置的java / c#类型,因为它们也可以被视为第三方)。这些是没有任何上述特征的库,例如noda-time。我还可以看到如何根据您的域直接引用某些数学或集合库。