DDD领域驱动设计

DDD领域驱动设计

数据驱动设计流程

  1. 需求分析
  2. 数据建模(ER图)
  3. 建库建表(写DAO)
  4. 编写业务逻辑

弊端:很难重用、

领域驱动设计流程

  1. 需求分析,有规范,使用统一语言

image-20220606161912443

  1. 领域分析——领域边界划分,边界的划分标准是业务

    image-20220606162020157

    image-20220606162435773

为了保证领域的内聚性更强,会对领域采取保护手段,包括ACL、OHS、PL

ACL:接口层面的定义,通过适配器、桥接模式等,

OHS、PL:应用层

领域建模

image-20220606180346934

领域对象

  1. Bounded Context
  2. Aggregate:聚合根,是一个大对象,包含多个Entities、多个Value Object共同组成
  3. Value Object: 无状态的值对象
  4. Entities:有唯一标识且有状态的对象
  5. Services:在Entities无法满足的情况下使用,只操作无状态的数据
  6. DomainEvents: 领域事件
  7. Factories:生产Entities等
  8. Repositoroies:资源,入库操作

核心业务逻辑

技术实现细节

领域驱动中关心业务的流转,业务指的是从订单->库存->支付,类似这样的是属于业务;比如,查询订单、查询库存,这些操作不叫业务。

COLA框架

CQRS(Command Query

image-20220606180623948

image-20220606180731780

image-20220606180920564

image-20220606182738657

六边形架构

image-20220606182856085

洋葱架构

纵向架构+六边形横向架构相结合

image-20220606183208041

image-20220606183246117

分层架构与DDD整合

image-20220606183418050

落地框架-COLA

image-20220606183538241

微服务拆分

image-20220606184613350

image-20220606184545801

image-20220607104056597

image-20220607104348232

image-20220607112314611

image-20220607112858273

image-20220607113712361

image-20220607113749800


DDD领域驱动设计
http://example.com/2023/03/09/DDD/DDD领域驱动设计/
作者
UncleBryan
发布于
2023年3月9日
许可协议