Java DAO设计模式与servlet
我正在Oracle网站上阅读有关DAO设计模式的文章,并试图在使用JSP、servlet、普通java对象和MVC模式的上下文中理解下图。在我的例子中,BusinessObject是我的servlet,TransferObject是我的java类,只有属性、变量和访问器(DTO) 例如,如果我在servlet(控制器)中有此代码Java DAO设计模式与servlet,java,jsp,design-patterns,servlets,dao,Java,Jsp,Design Patterns,Servlets,Dao,我正在Oracle网站上阅读有关DAO设计模式的文章,并试图在使用JSP、servlet、普通java对象和MVC模式的上下文中理解下图。在我的例子中,BusinessObject是我的servlet,TransferObject是我的java类,只有属性、变量和访问器(DTO) 例如,如果我在servlet(控制器)中有此代码 (来源:)是的,BusinessObject看起来像MVC的C(控制器)。整个DAO模式是MVC中模型层的一部分,其中BusinessObject提供模型接口,DAO
(来源:)是的,BusinessObject看起来像MVC的C(控制器)。整个DAO模式是MVC中模型层的一部分,其中BusinessObject提供模型接口,DAO和DTO对象是模式实现的一部分 您的servlet将位于控制器层,用于呈现要发送到客户端的HTML(或其他格式)的类将位于视图层 web应用程序的大小和复杂性决定了层是否可以仅从一个类构建
为了回答您的问题,DTO(我们称之为数据持有者对象)只包含属性、getter/setter、清理和验证方法。它们将存储/传输和业务逻辑的实现分离开来。。在处理表示逻辑的控制器和处理数据访问逻辑的DAO之间,应该有一个包含业务对象的业务层 这些业务对象的主要职责是
- 为管制员提供业务服务。它们是一个门面
- 封装应用程序的业务逻辑
- 划界
- 使用一个或多个DAO来获取、查找和持久化对象李>
- 通过模拟业务对象对控制器进行单元测试
- 通过模拟DAO对业务逻辑进行单元测试
DTO.setFirstName(request.getParameter("firstName"));
DTO.setLastName(request.getParameter("lastName"));
DAO.save(DTO);