• 领域驱动设计学习笔记 实体


          对象建模倾向于引导我们将精力集中于对象的属性上。但是实体的基本概念就是一种抽象的连续性。这种连续性贯穿了对象的整个生命周期,甚至要经历多种实现形式。

          有些对象并不主要由它们的属性来定义的,它们体现了标识在时间上的延续性,甚至经常要经历多种不同的形态。有时,一个对象与另外一个对象有着不同的属性,但它们是互相匹配的;有时,一个对象与其他对象有着相同的属性,但它必须能跟那些对象区分开来。弄错对象标识会导致数据破坏。

          以标识作为其基本定义的对象称为“实体”。实体的类定义、职责、属性、关联都是围绕着它是谁进行考虑的,而不考虑它有那些特定的属性。即使实体并不会发生很大的变化,或者生命周期并不复杂,我们仍应该根据语义将它归类为实体,这样可以得到更清晰的模型和更健壮的实现。

          在特定的软件系统之外,比如银行交易、房子出租等等,标识也有着同样的重要意义。但是,有些标识只有在特定的上下文中才有意义。

          如果一个对象是通过标识而不是属性来确定的,那么就在模型中把标识作为这个对象定义的基本要素。保持类的定义简单明了,并着重考虑其生命周期中的连续性和唯一性。定义对象的方法能够把每个不同的对象区分开来,而无需考虑它的形态和历史。对那些需要通过属性比较来匹配对象的情况进行警惕。确保生成标识的操作能够为每一个对象产生一个唯一的结果,这可以通过在标识中附加一个具有唯一性保证的符号来实现。生成的标识可能来自外界,也可能是由使用这些标识的系统随机产生的;不管是使用什么方法,标识必须满足其在模型中所具有的唯一性。模型必须对“怎么是同一个事物”的具体含义作出定义。

         标识并不是现实实体所固有的,它之所以意义重大,是因为它非常有用。事实上,现实世界中的同一个事物在领域模型中有可能表示为实体,也有可能不表示为实体。

  • 相关阅读:
    Sendkeys 和 Sendmessage 使用技巧一例
    和菜鸟一起学算法之二分法求极值问题
    和菜鸟一起学算法之三分法求极值问题
    和菜鸟一起学证券投资之国内生产总值GDP
    和菜鸟一起学OK6410之Led字符驱动
    和菜鸟一起学OK6410之最简单驱动模块hello world
    和菜鸟一起学OK6410之交叉编译hello world
    和菜鸟一起学android4.0.3源码之touchscreen配置+调试记录
    和菜鸟一起学android4.0.3源码之红外遥控器适配
    和菜鸟一起学OK6410之最简单字符驱动
  • 原文地址:https://www.cnblogs.com/laichenshui/p/1884484.html
Copyright © 2020-2023  润新知