领域驱动设计:分层架构
分层架构是运用最为广泛的架构模式, 几乎每个软件系统都需要通过层来隔离不同的关注点,以此应对不同的需要变化,使得这种变化可以独立进行,此外,分层架构模式还可以用于隔离业务复杂度和技术复杂度。
Robert Martin认为单一职责原则就是”一个类应该只有一个引起它变化的原因”,换句话,就是如果有两个引起类变化的原因,就需要分离。单一职责原则可以理解为架构原则, 这里我们考虑的不是类,而且层次,这就是为什么我们需要将业务和基础设施进行分开的原因。
分层架构演进
左边为传统的经典三层架构,在此基础上,领域驱动里面提出了四层架构,由原来的业务层分为应用层和领域层。
“新增的应用层”主要负责:协调对领域对象的操作,分配工作,与其它系统的应用层进行交互的必要渠道, 本身不包括业务逻辑, 是非常薄的一层, 与业务用例一一对应
领域层: 负责表达业务概念,业务状态信息以及业务规则。
基础设施层: 向其他层提供通用的技术能力, 为应用层传递消息,为领域层提供持久化机制,为用户界面层绘制屏幕组件等。
分层依赖关系
一般的分层架构都是,上层依赖下层,从上自下的依赖关系, 但是DDD中,我们推荐应该
...