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

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

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

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

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

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

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

作者: 赖晨水 发表于 2010-11-23 11:05 原文链接

评论: 0 查看评论 发表评论


最新新闻:
· 新闻观察:电信商控制Android损害Google流量(2010-11-25 08:40)
· 苹果在华示弱Android原因:利润比份额重要(2010-11-25 08:40)
· 硅谷提问网站Quora估值高达8000万美元(2010-11-25 08:39)
· 黑莓企业销售员工纷纷出逃投靠苹果(2010-11-25 08:38)
· 平板电脑挡道硬盘业 硬盘一哥希捷或被收购(2010-11-25 08:37)

编辑推荐:GCC强大背后

网站导航:博客园首页  我的园子  新闻  闪存  小组  博问  知识库

做个快乐的自己。
原文地址:https://www.cnblogs.com/Jessy/p/1887292.html