第二部分:DDD设计中的实体

目录

定义

最佳实践


定义

      每个实体是唯一的,并且可以相当长的一段时间内持续的变化。我们可以对实体做多次修改,故一个实体对象可能和他之前的状态大不相同,但是由于他们拥有相同的身份标识,他们依然是同一个实体。
    一个典型的实体应该包含身份标识、属性和领域行为。强调的是连续性和标识。一句话:实体是具有唯一标识的对象
   实体可以是任何事物,只要满足两个条件即可:

     1.它在整个生命周期中具有连续性,

     2.它的区别并不是由那些对用户非常重要的属性决定的。

     所以实体可以是一个人、一座城市、一辆汽车或者一次银行交易等。

最佳实践

       1.【识别属性】首先考虑实体的本质特征,尤其是那些用于识别(唯一标识)、查找或者匹配对象的特征。不要一开始就关注实体的属性和行为,只有在对实体的本质特征有用的情况下,才加入相应的属性和行为。

           属性按粒度分为原子属性和组合属性,识别标准:该属性是否存在约束规则、组合因子或属于自己的领域行为。把职责推给组合属性类,避免把类定义的庞大而松散。


       2.【挖掘行为】通过对实体相关所有用例的分析,整理出符合统一语言的实体的行为列表。

       3.只添加那些对概念至关重要的行为和这些行为所必须的属性。此外,应该将行为和属性转移到与核心实体关联的其他对象中。这些对象中,有些可能是实体,有些可能是值对象。除了标识之外,实体往往通过协调其他关联对象的操作来完成自己的职责。

你可能感兴趣的:(DDD,领域驱动设计,设计规范,程序人生)