Skip to content

实体(Entity)

实体是领域驱动设计中的核心概念,代表业务领域中具有唯一标识的对象。

汽车生产案例

在汽车制造厂中,实体可以理解为:

  • 每辆汽车有唯一的VIN码(车辆识别号)
  • 每个发动机有唯一的序列号
  • 每个生产线工位有唯一的编号

即使汽车颜色改变、发动机参数调整或工位设备更新,只要它们的唯一标识不变,就仍然是同一个实体。

主要特点

  1. 唯一标识:通过ID区分不同实体
  2. 可变性:属性可以随时间改变
  3. 业务连续性:在整个业务生命周期中保持身份

示例

java
// 汽车实体
class Car {
  private String vin; // 车辆识别号
  private String model;
  private String color;
  
  // 即使车型或颜色改变,只要VIN码相同就是同一辆车
}

// 发动机实体
class Engine {
  private String serialNumber; // 发动机序列号
  private String type;
  private double power;
  
  // 即使更换发动机类型或功率,只要序列号相同就是同一台发动机
}

与值对象的区别

实体值对象
通过ID区分通过属性值区分
关注身份关注特征
可变通常不可变