域驱动设计:基础架构或存储库可以使用域对象吗?

时间:2016-03-10 22:00:02

标签: domain-driven-design

考虑到域驱动设计,基础架构或系统可以使用域的对象(值,实体等),还是应该应用依赖性倒置,以便基础架构只依赖于自己定义的接口?

存储库怎么样?是否适用相同?

它是违反基础设施,存储库还是系统代码取决于域?

(A)基础设施依赖于域的示例代码:

namespace Infrastrcuture {
    public class Sender {
        public void Send (Domain.DataValue data) { ... }
    }
}

(B)基础架构不依赖于域的示例代码:

namespace Infrastrcuture {
    public interface ISendableData {
        ...
    }
    public class Sender {
        public void Send (ISendableData data) { ... }
    }
}

1 个答案:

答案 0 :(得分:4)

一般情况下,如果您的基础架构取决于您的域,我会说没关系。反过来说这不是一个好主意。

以这种方式思考:什么更有可能在某些时候被替换?基础设施或域名?

基础设施将随着时间的推移而变化(不同的提供商,不同的服务器......)另一方面,您的域将始终存在