代码之家  ›  专栏  ›  技术社区  ›  Jesper

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

  •  6
  • Jesper  · 技术社区  · 7 年前

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

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

    1 回复  |  直到 7 年前
        1
  •  10
  •   Amit Joshi user8575948    5 年前

    还有,Martin Fowler says 关于POJO:

    在演讲中,我们指出了将业务逻辑编码为常规java对象而不是使用实体bean的许多好处。我们想知道为什么人们如此反对在他们的系统中使用规则对象,并得出结论,这是因为 ,它很受欢迎。

    以下是 非常松散 对于常用的不同术语:

    关系模型[数据库层]:

    • 数据库、表和字段。

    • 这用于满足持久性需求。

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

    • 暴露于BLL/服务层的模型。

    • 暴露于视图的模型。

    DTO:

    • 仅保存状态,用于将数据从一层传输到另一层。
    • 最好是可序列化的。
    • 针对请求层设计;与数据库不同。
    • 没有自己的身份。

    POCO:

    • 可用于任何ORM的持久性无关对象。
    • 保存数据库中的数据。
    • 不一定可以序列化。
    • 可能具有验证逻辑或与POCO紧密绑定的其他逻辑(如数据加密/列的唯一性)。
    • 没有诸如Get、Save等持久性方法。POCO本身不会填充。
    • 可能有自己的身份。

    实体:

    • 对象,该对象可以使用DataContext从数据库加载并保存到数据库。
    • 没有其DataBaseContext就无法存在。
    • 与特定ORM紧密结合并实现其规则(默认构造函数、用于创建运行时代理的虚拟属性等)。

    型号:

    • 用于表示保存数据的任何对象的通用术语。
    • 上面的所有对象,如果我们把其中任何一个放在MV*模式中,它就会成为模型。

    https://stackoverflow.com/a/37751345/5779732

    https://stackoverflow.com/a/42801839/5779732