核心概念

限界上下文(Bounded Context)

限界上下文是 DDD 中划分业务边界的核心概念。同一个领域模型在不同上下文中可能有不同含义。

示例:

  • 协作上下文:论坛、共享日历、博客、即时消息、wiki、留言板等
  • 身份与访问上下文:用户认证和授权,可被其他上下文复用
  • 敏捷管理上下文:项目管理、需求跟踪等

聚合与聚合根

聚合 = 聚合根 + 上下文边界

  • 聚合根(Aggregate Root):实体(Entity),是聚合的入口,仓储(Repository)只能操作聚合根
  • 一个领域模型可以有多个聚合根
  • 每个聚合根需要有一个 Repository

值对象(Value Object)

值对象没有唯一标识,由属性值决定其身份。常见值对象:

值对象属性
地址(Address)省、市、区、街道、邮编
金额(Money)币种、数值
时间段(Period)开始时间、结束时间
电话号码(PhoneNumber)国家区号、号码
坐标(Coordinate)经度、纬度
税率(TaxRate)税率百分比、税种

实体(Entity)

实体有唯一标识(ID),即使属性相同,ID 不同也是不同实体。

参考资料