在DDD中,领域模型处于核心位置,负责表示业务概念、有关业务状况的信息和业务规则。如果用层次结构描述的话,领域模型处于领域层,这个层次在软件设计时不依赖于基础设施层。如果涉及到对基础设施的访问,在领域层需要定义相关的接口,而将接口的实现放到基础设施层,在运行时使用依赖注入将接口与接口的实现进行装配。这种结构就是控制反转,使得领域模型在设计时独立于基础设施的具体实现。涉及到持久化的存储库就是采用这种方式进行设计,在领域模型中,我们只定义存储库的接口,其操作的领域对象都是普通对象,也就是所谓的POCO,而将存储库的具体实现放在基础设施层,这样领域模型所在的项目不需要依赖任何持久化相关的类库,在实现存储库的组件中需要引用领域模型。
Read More