Fel*_*tti 4 domain-driven-design
考虑到领域驱动设计,基础设施或系统是否可以使用域的对象(值、实体等),或者是否应该应用依赖倒置,以便基础设施仅依赖于自己定义的接口?
存储库怎么样?它同样适用吗?
是否违反了基础设施、存储库或取决于域的系统代码?
(A) 基础设施依赖于域的示例代码:
namespace Infrastrcuture {
public class Sender {
public void Send (Domain.DataValue data) { ... }
}
}
Run Code Online (Sandbox Code Playgroud)
(B) 基础设施不依赖于域的示例代码:
namespace Infrastrcuture {
public interface ISendableData {
...
}
public class Sender {
public void Send (ISendableData data) { ... }
}
}
Run Code Online (Sandbox Code Playgroud)
一般来说,如果您的基础设施依赖于您的域,我会说这是可以的。反过来也不是一个好主意。
这样想:什么时候更有可能被取代?基础设施还是领域?
基础设施会随着时间的推移而改变(不同的提供商、不同的服务器……)另一方面,您的域将永远存在