DDD为什么域模型应定义基础结构的接口

时间:2018-07-09 09:12:50

标签: domain-driven-design

在研究DDD时,我想知道为什么Domain模型需要为基础结构层定义接口。

从我的读物中,我得到了一个高级(域模型,应用程序服务,域服务)定义了需要由较低层(基础结构)实现的接口。很简单。

从这个想法出发,我认为一个应用程序级别(高层)为较低的接口(基础结构)定义接口是有道理的,因为该应用程序级别将使用基础结构组件(存储库是应用程序层的常规客户端)但不想与任何特殊的实现方式联系在一起。

但是,当我在某些书籍中看到定义基础结构接口的域级别时,这会造成混淆,因为域模型永远不会使用存储库,因为我们希望域模型“纯净”。

我想念什么吗?

1 个答案:

答案 0 :(得分:0)

  

在研究DDD时,我想知道为什么Domain模型需要为基础结构层定义接口。

不是真的-这就是重点。

域模型定义了 需要工作的接口/合同,并承诺可以愉快地使用符合合同的任何实现。

因此,您可以选择在应用程序组件,基础结构组件或任何有意义的地方实现接口。

请注意语言从“层”到“组件”的转变。图层可能过于简单而无法使用-请参见Udi Dahan 2007