### 领域驱动学习记录

实体

  • 对实体做业务处理时,领域服务、仓储操作实体,实体是客体,充血给领域服务、仓储。
  • 局部实体的属性访问、计算时,实体是主体,实体的属性是客体,充血给实体。

值对象

特性:

  1. 度量或描述。只是度量或描述领域中某件东西的一个概念;
  2. 不变性。值对象在创建后,就不会发生改变,如果需要改变的话,将创建一个新的值对象并对原有对象进行替换;
  3. 概念整体性。一个值对象可以只有一个属性,也可以拥有一组相关属性。如果一组属性联合起来并不能表达一个整体上的概念,那就没有什么意义;
  4. 有效性。值对象的构造函数应该用于保障概念整体性的有效性;
  5. 可替换性。如果需要改变的话,我们需要将整个值对象替换成一个新的值对象实例;
  6. 属性相等性。通过比较两个对象的类型和属性来决定其相等性;
  7. 方法无副作用。由于不变性,值对象的方法一般为一个无副作用函数,这个函数表示对某个对象的操作,它只用于产生输出,不会修改对象状态。