Skip to content

⚠️ Important Notice

This post was last updated on: which was . Please pay attention to its timelines.

知乎专栏:https://www.zhihu.com/column/c_1266667320073818112

https://www.tangshuang.net/8663.html

DDD(Domain-Driven Design) 领域驱动设计

DDD领域建模:

  1. 描述业务的实体对象
  2. 描述工作流程的服务对象
  3. 辅助完成编程工作的程序对象

贫血模型和充血模型 贫血模型就是不包含具体业务的;充血模型就是更加具体。

领域模型描绘了业务相关的核心对象以及对应的逻辑,但是对于特定的业务场景,就需要在基础的领域模型上添加对应场景的服务

领域模型是对通用业务的描述,领域服务就是特殊场景下的业务描述。

一般服务是无状态的,状态放到领域模型中。

领域模型是对业务逻辑的抽象,是不包含UI或交互的。

对于交互,应该抽象专门的交互模型来处理。通过交互模型的实例将视图层提交状态属性和方法,属性用于视图层进行渲染,方法用于时间回调。

最后在通过对视图层的抽象,针对不同视图进行不同的抽象。这样就能复用领域模型、领域服务以及交互模型。

总结一下,从上到下分为三个层:

  1. 业务层:通过构建领域模型来对通常业务进行描述,领域服务对特殊场景抽象
  2. 交互层:对页面交互进行抽象,连接业务和视图
  3. 视图层:针对不同的视图进行处理,消费业务层和交互层。

上一次更新: