从DAL返回的对象的DTO等价术语是什么?

Jes*_*per 1 data-access-layer dto

我已经在使用DTO通过网络进行数据传输。现在,我还将不同的DTO类引入DAL。这是为了避免跨层传递应用程序(业务)对象。

为避免命名混乱,我想使用DTO以外的其他术语,但找不到一个好的术语。

从DAL返回的对象的DTO等价术语是什么?

Ami*_*shi 5

“名字叫什么?我们称之为玫瑰的任何其他名字都会闻起来很香。” - 威廉·莎士比亚

另外,马丁·福勒 Martin Fowler 对POJO的评价是:

在演讲中,我们指出了将业务逻辑编码为常规Java对象而不是使用实体Bean的许多好处。我们想知道为什么人们反对在他们的系统中使用常规对象,并得出结论,这是因为简单的对象缺少花哨的名称。因此,我们给了他们一个,而且非常受欢迎。

顺便说一句,没关系。为了避免由于类似的命名而引起的混乱,您可以从“ DataModel”,“ Entity”,“ POCO”中进行选择。

以下是对通常使用的不同术语的非常宽松的 考虑

关系模型[数据库层]:

  • 数据库,表和字段。

持久性模型[数据访问层]:

  • (通常)属于ORM或与数据库紧密映射的模型。
  • 这用于持久性需求。

域模型/业务模型[业务逻辑/服务层]:

  • 公开给BLL /服务层的模型。

查看模型[UI层]:

  • 暴露给View的模型。

DTO:

  • 仅保留状态,用于将数据从一层传输到另一层。
  • 除序列化外,没有任何行为/逻辑。
  • 最好是可序列化的。
  • 针对请求层设计;与数据库不相似。
  • 没有自己的身份。

POCO:

  • 它只是一个常规对象,没有对任何特定框架的引用,并且不遵循其接口或限制。
  • 可以与任何ORM一起使用的持久性忽略对象。
  • 从数据库保存数据。
  • 不一定可序列化。
  • 针对数据库请求而设计。
  • 可能具有验证逻辑或与POCO紧密相关的逻辑(例如数据加密/列的唯一性)。
  • 没有诸如Get,Save等的持久性方法。POCO不会填充自身。
  • 可能有其自己的身份。

实体:

  • 它必须具有自己的身份,并且可以唯一标识。
  • 可以使用DataContext从数据库加载或保存到数据库的对象。
  • 没有其DataBaseContext不能存在。
  • 与特定的ORM紧密绑定并实现其规则(默认构造函数,创建运行时代理的虚拟属性等)。
  • 实体代表领域模型和领域逻辑。

模型:

  • 用于表示任何保存数据的对象的通用术语。
  • 上面的所有对象,如果将其中任何一个置于MV *模式中,则将变为Model。

请参考以下答案:

/sf/answers/2642594181/

/sf/answers/2996128761/