DAO设计模式和Servlet

时间:2011-12-18 09:35:53

标签: java jsp design-patterns servlets dao

我正在阅读Oracle网站上的DAO设计模式,我试图在使用JSP,Servlet,普通java对象和MVC模式的上下文中理解下面的图像。在我的例子中,BusinessObject是我的servlet,TransferObject是我的java类,只有属性,mutators和访问器(DTO)?

例如,如果我在servlet(控制器)中有这个代码

DTO.setFirstName(request.getParameter("firstName"));
DTO.setLastName(request.getParameter("lastName"));
DAO.save(DTO);

http://java.sun.com/blueprints/corej2eepatterns/Patterns/images09/figure09_02.jpg

2 个答案:

答案 0 :(得分:3)

几乎。在处理表示逻辑的控制器和处理数据访问逻辑的DAO之间,应该有一个包含业务对象的业务层。

这些业务对象的主要职责是

  • 为控制器提供业务服务。它们是一个门面
  • 封装应用程序的业务逻辑
  • 划分交易
  • 使用一个或多个DAO来获取,查找和保留对象。

此层非常重要,因为您希望能够在单个事务中对数据库执行多个操作。并且Web控制器不应该负责处理这个问题。此外,除了Web控制器(Swing客户端,批处理等)之外,其他客户端可以使用相同的业务服务。

业务对象通常使用会话EJB或Spring服务实现。

它们对于能够

也很有用
  • 通过模拟业务对象对控制器进行单元测试
  • 通过模拟DAO对业务逻辑进行单元测试

答案 1 :(得分:0)

是的,BusinessObject看起来像MVC的C(控制器)。