DDD(Domain-Driven Design) 领域驱动设计
DDD领域建模:
- 描述业务的实体对象
- 描述工作流程的服务对象
- 辅助完成编程工作的程序对象
贫血模型和充血模型 贫血模型就是不包含具体业务的;充血模型就是更加具体。
领域模型描绘了业务相关的核心对象以及对应的逻辑,但是对于特定的业务场景,就需要在基础的领域模型上添加对应场景的服务。
领域模型是对通用业务的描述,领域服务就是特殊场景下的业务描述。
一般服务是无状态的,状态放到领域模型中。
领域模型是对业务逻辑的抽象,是不包含UI或交互的。
对于交互,应该抽象专门的交互模型来处理。通过交互模型的实例将视图层提交状态属性和方法,属性用于视图层进行渲染,方法用于时间回调。
最后在通过对视图层的抽象,针对不同视图进行不同的抽象。这样就能复用领域模型、领域服务以及交互模型。
总结一下,从上到下分为三个层:
- 业务层:通过构建领域模型来对通常业务进行描述,领域服务对特殊场景抽象
- 交互层:对页面交互进行抽象,连接业务和视图
- 视图层:针对不同的视图进行处理,消费业务层和交互层。