在域模型中拥有第三方或自定义“库”参考?

时间:2012-12-20 22:14:31

标签: domain-driven-design

如果我的域模型中的逻辑依赖于第三方组件或某些内部自定义库/ manager .dll,是否可以创建此依赖项?我显然对我的域层的任何外观或持久层没有依赖/依赖,但我很好奇其他类型的依赖是否破坏了DDD的任何规则?

2 个答案:

答案 0 :(得分:4)

在DDD中,此类场景使用anti-corruption layer处理。这基本上需要的是您将第三方API封装在存储库或域服务之后。您可以创建第三方API的本地模型,然后可以与域层的其余部分集成。

答案 1 :(得分:4)

一般来说,我同意this answer,如果是第三方库

,尤其如此
  • 经常更改
  • 进行任何类型的进程外通信
  • 有很多自己的依赖

但是我认为某些第三方库可以直接从您的域代码中引用(否则您将无法使用内置的java / c#类型,因为它们也可以被视为第三方)。这些是没有任何上述特征的库,例如noda-time。我还可以看到如何根据您的域直接引用某些数学或集合库。