戏说领域驱动设计(十六):实体概念是如何定义的?

2026-05-23 16:220阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3870个文字,预计阅读时间需要16分钟。

戏说领域驱动设计(十六):实体概念是如何定义的?

现在开始正式的输入战部分,我看了前面一些文章,有代码的阅读量就高,没代码的差距很大,难道平台真的只看代码才会加强推荐吗?真的这样吗?

  现在开始正式的进入战术部分,我看前面发的一些文章,只要有代码的阅读量就高,没代码的就差太多了,难道是因为平台只要看到代码才会加强推荐吗?真要是这样那我是真醉了,其实学习DDD光看代码还真不行,需要很多理论支持的。如果您是新的读者我建议先把前面的内容都翻看一下,至少得有一些理论依据作支撑后面学习起来才会更有效率。本章主要讲解实体,属于战术部分最为核心的内容。有人说聚合重要,但聚合也是实体,重要度都高,所以要先讲基础的。

一、两类模型

  实体包含两类。如果只有属性及“getter/setter”方法,这叫“贫血模型”,DDD不推荐使用这种模型。再说了,数据模型本身就是贫血的,再多引个贫血的领域模型除了各种赋值操作外根本就没个卵用。另外一种模型叫“充血模型”,“充血模型”不仅要包含属性,还要包含业务方法,下面两张图展示了两类模型在设计时的区别。把充血模型比喻成“人”最合适,有属性还有行为。本章及后续文章所涉及实体和值对象都属于充血模型。

  您可别简简单单的认为这两种模型只是在包含方法上有区别,这里面的学问大着呢,你理解透了才能在用的时候不至于抓瞎。

  首先咱们先说其意义,贫血模型是一种数据传输对象,它用于表现数据;充血模型由于其包含了对象属性和业务能力,可以有效的表达真实世界中各类活灵活现的事务,比较适合作为领域模型来用。还有一点,您就没法通过贫血模型来进行业务推测,所以一般称之为反模式。是不是会惊呆了?“啥玩意儿,什么叫通过模型推导业务?”。这东西明摆着嘛,您通过对业务进行分析来设计领域模型,当然也可以通过领域模型反向推导出业务能力了。

阅读全文

本文共计3870个文字,预计阅读时间需要16分钟。

戏说领域驱动设计(十六):实体概念是如何定义的?

现在开始正式的输入战部分,我看了前面一些文章,有代码的阅读量就高,没代码的差距很大,难道平台真的只看代码才会加强推荐吗?真的这样吗?

  现在开始正式的进入战术部分,我看前面发的一些文章,只要有代码的阅读量就高,没代码的就差太多了,难道是因为平台只要看到代码才会加强推荐吗?真要是这样那我是真醉了,其实学习DDD光看代码还真不行,需要很多理论支持的。如果您是新的读者我建议先把前面的内容都翻看一下,至少得有一些理论依据作支撑后面学习起来才会更有效率。本章主要讲解实体,属于战术部分最为核心的内容。有人说聚合重要,但聚合也是实体,重要度都高,所以要先讲基础的。

一、两类模型

  实体包含两类。如果只有属性及“getter/setter”方法,这叫“贫血模型”,DDD不推荐使用这种模型。再说了,数据模型本身就是贫血的,再多引个贫血的领域模型除了各种赋值操作外根本就没个卵用。另外一种模型叫“充血模型”,“充血模型”不仅要包含属性,还要包含业务方法,下面两张图展示了两类模型在设计时的区别。把充血模型比喻成“人”最合适,有属性还有行为。本章及后续文章所涉及实体和值对象都属于充血模型。

  您可别简简单单的认为这两种模型只是在包含方法上有区别,这里面的学问大着呢,你理解透了才能在用的时候不至于抓瞎。

  首先咱们先说其意义,贫血模型是一种数据传输对象,它用于表现数据;充血模型由于其包含了对象属性和业务能力,可以有效的表达真实世界中各类活灵活现的事务,比较适合作为领域模型来用。还有一点,您就没法通过贫血模型来进行业务推测,所以一般称之为反模式。是不是会惊呆了?“啥玩意儿,什么叫通过模型推导业务?”。这东西明摆着嘛,您通过对业务进行分析来设计领域模型,当然也可以通过领域模型反向推导出业务能力了。

阅读全文