问答部分
问:
仓储实现为什么在基础设施层?
答:
领域模型包含三种元素:实体、值对象和服务,这三种元素都可以以某种形式使用仓储,为了保证领域的纯粹性,我们引入了仓储接口,仓储的具体实现在基础设施层中,仓储接口位于领域层中。
问:
仓储实现能在领域层吗?
答:
技术可以,从关注点分离上讲,仓储实现和领域模型有不同的关注点,视乎没有任何必要将他们划分到一个层,
问:
仓储接口能在基础设施层吗?
答:
技术上不可行(.NET中是如此),仓储接口依赖领域模型,领域模型依赖仓储接口,会存在双向依赖,在.NET中会编译不通过,在其他平台也不见得是好的选择。