美文网首页
百问中台:基于DDD的中台值对象

百问中台:基于DDD的中台值对象

作者: sknfie | 来源:发表于2020-10-14 09:39 被阅读0次

概述

值对象由两个word组成:值+对象。值对象=值+对象,即一个值用对象的方式进行表述,来表达一个具体的固定不变的概念:

  • 值是什么或者有什么特点?
    固定不变,表述一个具体的概念。如数字1、2、3,字符串“hello world”,地址(北京市海淀区中关村)。
  • 对象是什么或者有什么特点?
    一切皆为对象,是对现实世界的抽象,用来描述一个具体的事物。

值的特征

  • 表示一个具体的概念
  • 通过值的属性对其识别
  • 属性判等
  • 固定不变

值对象的特征

  • 描述了领域中的一件东西
  • 不可变的
  • 将不同的相关属性组合成了一个概念整体
  • 当度量和描述改变时,可以用另外一个值对象予以替换
  • 和其他值对象进行相等性比较(属性判等)
  • 对协作对象没有副作用
    综上所述,值对象包含了值所具有的全部特征。

值对象的持久化

  • 单个值对象
    将值对象中的属性作为所属实体的数据列来存储(比如,我们可以将地址的属性映射到用户实体中)。
  • 多个值对像序列化到单个列
    当每个用户只有一个地址时,用上面的方案即可。但如果有多个地址时,可以把一个集合序列化后塞到外层实体表的某一列中,极大的简化了系统的设计。
  • 使用数据库实体保存多个值对像
    使用数据库实体的形式保存值对象,这个比较符合传统的设计方式,但不是DDD推崇的方式,因为这种方式让值对象有了实体的影子。
    因此,在进行持久化设计时,需谨记:
    根据业务来驱动技术,即根据领域模型来设计数据模型,而不是根据数据模型来设计领域模型。

值对象的作用

  • 有利于使用通用语言,简单明了表达业务领域,使设计更加简洁,充分提升系统的性能。
  • 有利于使用建模值对象,领域中的某些对象,只需知道它是什么而无需关心它是哪个。所以建模值对象要结合通用语言的表述看其是否有值的含义和特征。

总结

In a word, 值对象就是将一个值用对象的方式进行表述,来表达一个具体的固定不变的概念。

相关文章

网友评论

      本文标题:百问中台:基于DDD的中台值对象

      本文链接:https://www.haomeiwen.com/subject/dssipktx.html