考虑到域驱动设计,基础架构或系统可以使用域的对象(值,实体等),还是应该应用依赖性倒置,以便基础架构只依赖于自己定义的接口?
存储库怎么样?是否适用相同?
它是违反基础设施,存储库还是系统代码取决于域?
(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) { ... }
}
}
答案 0 :(得分:4)
一般情况下,如果您的基础架构取决于您的域,我会说没关系。反过来说这不是一个好主意。
以这种方式思考:什么更有可能在某些时候被替换?基础设施或域名?
基础设施将随着时间的推移而变化(不同的提供商,不同的服务器......)另一方面,您的域将始终存在