DDD学习(二)—— 领域建模重要概念

领域建模重要概念

在阅读之前应该理解了DDD的主要思想和 限界上下文,子域核心域等基础概念

实体(Entity)

  • 重要概念:标识,可能由唯一一条属性,或多种属性组合而成。

概念性解释

一些对象主要不是由它们的属性定义的。它们实际上表示了一条“标识线”(A Thread of Identity),这条线跨越时间,而且常常经历多种不同的表示。有时,这样的对象必须与另一个具 有不同属性的对象相匹配。而有时一个对象必须与具有相同属性的另一个对象区分开。错误的标识可能会破坏数据。

主要由标识定义的对象被称作ENTITY。ENTITY(实体)有特殊的建模和设计思路。它们具 有生命周期,这期间它们的形式和内容可能发生根本改变,但必须保持一种内在的连续性。为了 有效地跟踪这些对象,必须定义它们的标识。它们的类定义、职责、属性和关联必须由其标识来 决定,而不依赖于其所具有的属性。即使对于那些不发生根本变化或者生命周期不太复杂的 ENTITY,也应该在语义上把它们作为ENTITY来对待,这样可以得到更清晰的模型和更健壮的实现。

当然,软件系统中的大多数‚ENTITY‛并不是人,也不是其通常意义上所指的‚实体‛或‚存 在‛。ENTITY可以是任何事物,只要满足两个条件即可:

  • 一是它在整个生命周期中具有连续性
  • 二是它的区别并不是由那些对用户非常重要的属性决定的。

比如小明想去看一场演唱会,买了一张门票,门票上写着座位号为 4排3座 ,那么该座位在建模时应当是实体,因为小明应该只能坐 4排3座 的座位,其他位置的座位不属于他。此时 4排3座就是一个唯一性标识。但如果演唱会门票改为入场券形式,即门票上只说明可以凭此票拥有一个座位,那么此时的座位就不再是实体,而应该是“值对象”,也就是说每个座位都是一样的,只是用来坐而已。后一节我们将会详细了解值对象的概念。

注意:将与标识有关的属性留在Entity里,将无关行为和属性转移到与核心实体关联的其他对象中。

识别时注意:是否可以互换?

很多对象不是通过它们的属性定义的,而

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值