欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

DDD—快速理解聚合根、实体、值对象的区别和联系

程序员文章站 2022-07-15 12:41:57
...

聚合根、实体、值对象的关系:
1.实体具有ID,生命周期,状态用值对象描述状态,实体通过ID进行区分是这个实体还是那个实体;
2.聚合根是实体,聚合根的ID全局唯一,聚合根下面的实体的ID在聚合根内唯一即可;
3.值对象的核心意思是值,与是否是复杂类型无关,例如Price、Count、OrderNo、CustomerAddress都是值对象;
4.值对象无生命周期,本质是一个值,通过两个值对象的值是否相同来区分是都是同一个值对象;

//聚合根
public class order{
  public string ID;//值对象,订单的ID,全局唯一
  public string OrderNo;//值对象
  public Address CustomerAddress;//值对象
  public IList<orderItem>Items;//实体集合
}
//实体
public class OrderItem
{
   public String  Production;//实体的主键,Order内唯一即可
   public String  ProductName;//值对象
   public float price;//值对象
   public int Count;//值对象
}
//值对象
public class Address
{
  public string Province;//值对象
  public string City;//值对象
  public string County;//值对象
}
相关标签: DDD java