领域驱动模型学习笔记(一)

领域驱动模型的基本概念

领域驱动模型学习笔记(一)

DDD的基本概念

领域驱动设计(Domain-Driven Design,DDD)是一种以业务领域为中心的软件设计方法,它围绕着领域模型进行设计,通过分层架构将领域独立出来。

领域模型

领域模型是DDD的核心,是业务概念、规则和行为的抽象表示。在DDD中,所有的设计决策和开发活动都应围绕领域模型展开。领域模型帮助开发团队与业务团队达成共同理解,确保技术实现反映了业务需求。

  • 实体(Entity): 有唯一标识的业务对象,如用户、订单等。实体类似传统模型中的Entity,但是实体会包括一些行为,实体的状态是可变的,且有生命周期。

  • :值对象(Value Object): 没有唯一标识的对象,且通常是不可变的。通常表示实体某个属性的值,值对象是不可变的,如地址、日期、金额等。

  • :聚合(Aggregate)和聚合根(Aggregate Root): 聚合是由一个或多个实体和/或值对象组成,并通过聚合根(Aggregate Root)来管理其一致性。聚合确保了业务的一致性边界,聚合根的责任是确保整个聚合的一致性和完整性。

  • 领域服务(Domain Service): 用于封装不适合放在实体或值对象中的领域逻辑的服务。包含某些业务逻辑的功能,但这些逻辑不属于某个具体的实体或值对象。通常是无状态

  • 领域事件(Domain Event): 表示领域中发生的重要变化或事件,通常用于事件驱动架构。

分层架构

##