5

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

4

2 回答 2

8

总的来说,我同意这个答案,如果是第 3 方库,则尤其如此

  • 经常变化
  • 进行任何类型的进程外通信
  • 有很多自己的依赖项

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

于 2012-12-21T03:02:46.007 回答
4

在 DDD 中,这种类型的场景是通过反腐败层来处理的。这基本上需要您将第 3 方 API 封装在存储库或域服务后面。您创建一个 3rd 方 API 的本地模型,然后可以与您的域层的其余部分集成。

于 2012-12-20T23:06:40.507 回答