8

这是我对这两个术语的定义,但我不确定它是否完整:

持久对象是领域模型中的一个类的实例,它表示从数据库中提取的一些信息。瞬态 对象是域模型中类的一个实例,它是在内存中创建的

a)我假设术语持久性瞬态仅用于域模型中的对象,但不适用于位于域模型之外的业务层中的对象?

b) 我们是否也使用Data-Transfer-Objects这两个术语?

c) 这两个术语是否也用于值对象

谢谢

4

3 回答 3

20

持久表示对象已保存到数据库中,而瞬变表示尚未保存。因此,例如,当您从存储库中获取实体时,该实体是持久的。当您创建一个新实体时,它是暂时的,直到持久化。

a) 这些术语与 ORM 的关联性比与 DDD 的关联性更高,因此它们适用于任何非 DDD。在 DDD 中持久化/瞬态适用于实体和聚合根,因为这些是与存储库一起持久化的对象。

b) 不,DTO 旨在跨进程边界传输数据,并且没有您希望持久保存到数据库的对象的生命周期。

c) 否,因为值对象没有身份,只能作为实体或聚合根的一部分持久化。值对象只是一个值,就像 1 是一个整数值一样,谈论它是否持久化是没有意义的。

于 2012-07-12T23:56:47.913 回答
0

瞬态是指未处理的对象或实例化或新创建的对象。一旦对象被提交以进行除对象状态之外的任何其他操作,则该对象状态已知为持久

于 2015-12-19T07:45:55.887 回答
0

一个对象通常有两个组成部分:状态(值)和行为(操作)。它可以具有复杂的数据结构以及程序员定义的特定操作。9 OOPL 中的对象仅在程序执行期间存在;因此,它们被称为瞬态对象。OO 数据库可以扩展对象的存在,以便将它们永久存储在数据库中,因此对象成为持久对象,在程序终止之后存在,并且可以稍后检索并由其他程序共享。换句话说,OO 数据库将持久对象永久存储在二级存储中,并允许在多个程序和应用程序之间共享这些对象。

于 2018-12-24T23:34:41.687 回答