领域驱动设计学习记录
### 领域驱动学习记录
实体
- 对实体做业务处理时,领域服务、仓储操作实体,实体是客体,充血给领域服务、仓储。
- 局部实体的属性访问、计算时,实体是主体,实体的属性是客体,充血给实体。
值对象
特性:
- 度量或描述。只是度量或描述领域中某件东西的一个概念;
- 不变性。值对象在创建后,就不会发生改变,如果需要改变的话,将创建一个新的值对象并对原有对象进行替换;
- 概念整体性。一个值对象可以只有一个属性,也可以拥有一组相关属性。如果一组属性联合起来并不能表达一个整体上的概念,那就没有什么意义;
- 有效性。值对象的构造函数应该用于保障概念整体性的有效性;
- 可替换性。如果需要改变的话,我们需要将整个值对象替换成一个新的值对象实例;
- 属性相等性。通过比较两个对象的类型和属性来决定其相等性;
- 方法无副作用。由于不变性,值对象的方法一般为一个无副作用函数,这个函数表示对某个对象的操作,它只用于产生输出,不会修改对象状态。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 楚歌!
