虽然存在许多关于这个问题的stackoverflow答案,但很少能清楚地区分这两者之间的区别。结果,我对理解它们感到困惑。
我正在使用此pattern
参考图9.1,使用业务对象和传输对象。虽然两者的定义如下:
通常被认为是代表实体的类,例如书籍或商店。这样的类具有某些属性,如价格,颜色,宽度,等值数字等。在Java或.NET中,它由所谓的setter和getters组成
现在DTO的定义相同。在我看来,它像一个代表对象的Bean。因此,在独立应用程序中,可能是业务对象和DTO。请根据上面的模式链接区分这两者。
答案 0 :(得分:3)
DTO用于将数据从一个层传输到另一个层(例如,从数据访问层到模型)。
BO包含业务逻辑。
但是这种模式中最重要的是分离图层,以便更容易维护软件。
例如,如果您将数据访问层分开,无论是使用数据库获取数据,还是使用管道分隔的套接字或纯文本文件都无关紧要,您可以更改它,它将会不影响其余的图层。
答案 1 :(得分:1)
该文章定义:
BusinessObject表示数据客户端。对象需要访问数据源以获取和存储数据。除了访问数据源的servlet或辅助bean之外,BusinessObject可以实现为会话bean,实体bean或其他Java对象。
和
这表示用作数据载体的传输对象。 DataAccessObject可以使用传输对象将数据返回给客户端。 DataAccessObject还可以从传输对象中的客户端接收数据,以更新数据源中的数据。
当然,您可以看到想要在数据源中获取和存储数据的类与仅在层之间传输数据的对象之间的区别吗?