6

直接来自这篇关于 J2EE DAO 模式的 Oracle 文章:

除了业务对象“参与者”(他们称之为)之外,一切都非常清楚。

在这里,我引用了我想要更多见解的一点(特别是对现实生活中的例子有用(一个简单的例子))。

业务对象

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

我正在尝试将此模式用作练习(作为 OCPJP 考试的学生,它需要了解 DAO 模式)。到目前为止,我的 DataSource(mysql 数据库)、我的传输对象(称为 Person 的 JavaBean)和我的 DAO 对象在数据库和 JavaBean(Person)之间正确连接。

那么,业务对象到底是什么?

提前致谢

4

4 回答 4

6

业务对象是集中了应用程序所有逻辑的对象。使用业务对象通过对象模型分离业务数据和逻辑。

SEE HERE

于 2013-06-09T10:09:48.097 回答
4

DAO 负责以独立于存储的方式获取业务对象。例如,您可以创建一个 DAO 来访问客户,例如

public interface CustomerDAO {
    public Customer getCustomerById(Integer id)

}

然后在jdbc中实现一个数据访问

public class JdbcCustomerDao {

    public Customer getCustomerById(Integer id){
        DataSource dataSource ...;

         Connection con = dataSource.getConnection(...);
    }
}

或实现访问 Web 服务或其他内容的 CustomerDao。CustomerDao 的优点是客户端(使用 CustomerDao 的代码)独立于 concreate 存储技术。这就是为什么你应该在没有存储依赖的情况下设计 DAO API。一个很好的提示是 CustomerDAO 接口的导入语句。如果 CustomerDAO 导入语句包含以下内容:

import javax.sql.***

您应该重新考虑 API 的设计。但请记住,您也可以使用字符串引入 API 依赖项。例如

public Customer findCustomer(String sqlWhereClause){
   ...
}

业务对象保存数据,它是您应该放置域逻辑的地方。如果您使用的是丰富的域模型方法。

有关详细信息,请参阅有关“贫血域模型”为何被视为反模式的具体示例

于 2013-06-09T10:08:52.163 回答
0

我不是这方面的专家,但我认为我会给业务对象的外行解释是这样的:业务对象包含数据访问(例如数据库)和业务逻辑(例如,Java 类处理)所需的实例变量和属性实际操作)进行交流。

业务对象通常不为自己做任何事情。例如,电话可以是人和新闻门户之间的业务对象,电话本身不做任何事情,它只是保存双方所需的浏览器和互联网配置设置。

于 2017-12-19T14:11:52.923 回答
0

此外 -

当您开始实施所有业务类时,我假设您已经拥有一些 DAO。

举个例子,blogBO 需要 blogDAO 从数据库中创建或检索现有博客。

但是,博客包含与其相关的评论集合。blogBO 可能具有 getComments() 函数,该函数使用 commentBO(使用commmentDAO)查看数据库,并使用该 DAO 读取与该博客关联的所有评论。所有这些活动都属于您在 blogBO 中添加的业务。

所有底层 DAO 都应该通过 TO(传输对象或值对象)与业务层通信并将数据返回。但是,您的每个 DAO 都应该已经有一个关联的值对象。

于 2019-05-08T05:51:51.037 回答