考虑到领域驱动设计,基础设施或系统能否使用领域的对象(值、实体等),或者应该应用依赖倒置,使得基础设施仅依赖于自己定义的接口?
仓库又如何呢?是否适用相同的规则?
如果基础设施、仓库或系统的代码依赖于领域,这算是违反规则吗?
(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) { ... }
}
}
using
关键字),那么如何避免循环依赖?因为领域将使用基础架构的服务,而这些服务又依赖于领域。 - Felipe Lavratti