【问题标题】:Difference between business object and transfer object?业务对象和传输对象的区别?
【发布时间】:2013-03-25 19:59:37
【问题描述】:

虽然存在许多关于这个问题的 stackoverflow 答案,但它们很少能清楚地区分两者之间的区别。结果,我在理解它们时感到困惑。

我正在处理这个pattern

参考图9.1,business object和transfer object都用到了。虽然两者的定义大致如下:

通常被认为是代表实体的类,例如一本书或一家商店。这样的类具有某些属性,如价格、颜色、宽度、isbn 编号等。在 Java 或 .NET 中,它由所谓的 setter 和 getter 组成

现在 DTO 具有相同的定义。在我看来,它就像一个代表对象的 Bean。因此,在独立应用程序中,可能是业务对象和 DTO。请根据上面的模式链接区分两者。

【问题讨论】:

  • J2EE 是一个提示:这是一个 EJB 1.0 反模式,而不是要模拟的模式。 J2EE 是 1999 年的;现在是 Java EE。如果我是你,我会避开这个建议。
  • 没错。根据其版权声明,您提到的文章最后一次更新是在 2002 年。

标签: java dao dto business-logic business-objects


【解决方案1】:

DTO 用于将数据从一层传输到另一层(例如从数据访问层传输到模型)。

BO 包含业务逻辑。

但是这个模式中最重要的是层分离,为了让软件更容易维护。

例如,如果您将数据访问层分开,无论您是使用数据库获取数据,还是使用套接字,还是使用管道分隔的纯文本文件,您都可以更改它,它会不影响其余图层。

【讨论】:

    【解决方案2】:

    那篇文章定义:

    BusinessObject 代表数据客户端。它是需要访问数据源才能获取和存储数据的对象。除了访问数据源的 servlet 或 helper bean 之外,BusinessObject 还可以实现为会话 bean、实体 bean 或其他 Java 对象。

    和

    这表示用作数据载体的传输对象。 DataAccessObject 可以使用传输对象将数据返回给客户端。 DataAccessObject 还可以通过 Transfer Object 接收来自客户端的数据,以更新数据源中的数据。

    您肯定可以看出想要在数据源中获取和存储数据的类与仅在层之间承载数据的对象之间的区别吗?

    【讨论】:

    • 是的,我看到了,但我在考虑这两种类的结构。如果两者都由 getter 和 setter 组成,为什么不只有一个。我是这个概念的新手,所以只是想了解更大的图景:)
    猜你喜欢
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 2011-10-07
    • 2012-04-16
    • 1970-01-01
    相关资源
    最近更新 更多