写点什么

DDD-10- 值对象设计

作者:南山
  • 2024-08-27
    江苏
  • 本文字数:489 字

    阅读完需:约 2 分钟

1、定义

  • 值对象是人类为了认识和描述事物的属性,在头脑里经过抽象思维创造出来的概念。

2、识别

  • 仅用来描述特征

  • 只关心值对象的属性

  • 不关心有没有唯一标识

  • 可以拥有自己的行为

  • 任意一个值变了就不是同一个值对象

3、价值

  • 不变性有助于减少系统的复杂性

4、值对象分类

  • 原子值对象 vs 复合值对象

    原子值对象,是在概念上不能再拆分的值对象

    复合值对象是其他对象组合起来的值对象。

  • 独立的值对象 vs 依附于实体的值对象

    独立:可以用来描述任何实体的属性,所以可以不依附于任何实体而单独存在

    依附:它只能表达特定实体的属性,脱离了实体也就没有单独存在的意义

  • 可数值对象 vs 连续值对象

    可数:状态

    连续:实数

  • 预定义值对象 vs 非预定义值对象

    所谓预定义的,就是需要以某种方式在系统里,把这种对象的值定义出来

    枚举

    非预定义的值对象就不必预先定义在系统里

    整数

  • 值对象代码包结构

    依附实体的,与实体放在一起

    独立存在的,单独一个公共包

  • 与实体的本质区别

    实体是人通过感官可以感觉到的客观存在的事物,或者以存在的事物为蓝本想象出来的事物

    而值对象是为了描述事物,由人抽象出来的纯粹概念。讨论值对象的变化是没有意义的

5、注意

  • 值对象也可以有行为,但是不能改变本身属性

用户头像

南山

关注

采菊东篱下,悠然见南山~ 2018-05-04 加入

黄沙百战穿金甲,不破楼兰终不悔!

评论

发布
暂无评论
DDD-10-值对象设计_领域驱动设计_南山_InfoQ写作社区