图片太小了 看不清 请看附件
我们先看下面的类图
这是一个常用的dao层设计:
DAO (interface)
UserDAO extends DAO (interface)
BaseDAOHibernate implements DAO
UserDaoHibernate extends BaseDAOHibernate implements UserDao
采用这样的设计是为了提高代码的复用,在本例中就是基本的CRUD方法的复用
我们分析一下代码是怎么样被复用的
我们看一下中间的两个class :UserDao 和 BaseDaoHibernate 他们跟DAO接口都有直接的关系 一个是继承 一个是实现,换句话说他们都对DAO进行了扩展,UserDao是横向(接口)的扩展,BaseDAOHiberate是纵向的扩展,横向和纵向都扩展了之后要怎样合二为一呢?这个问题由UserDAOHibernat来解决了
通过看上面的图可以看出UserDAO 和 BaseDAOHibernat是作为一个中间层存在的,最终目的是让UserDAOHibernate拥有DAO接口的CRUD操作。
我们再来看下面这个图,是不是跟上图有着惊人的相似 其实仔细看一下这两个图完全的一样,目的也是复用CRUD操作
那么由此我们可以推出什么呢?这个例子能够得出什么结论呢?
凡是对底层的代码进行扩展都可以通过这种横向和纵向的方式来进行

- 大小: 2.9 KB

- 大小: 3.5 KB
分享到:
相关推荐
这包括了数据源、SessionFactory、Service层、DAO层等的配置。 3. **配置Struts**:创建Struts2的配置文件,定义Action及其对应的业务方法,设置结果视图。同时,可以配置全局异常处理和拦截器链。 4. **配置...
- **分层架构**: 在大型项目中,JFinal 可以与其他技术结合,例如采用 Service 层实现业务逻辑,DAO 层进行数据访问,使用 MyBatis 或 Hibernate 作为持久层框架。 - **RESTful API 设计**: 利用 JFinal 的注解...
- **分层设计**:UI层(视图)、Action层(控制)、Business/Service层(业务逻辑)、DAO层(数据访问)和Model层(模型)的五层架构,确保代码的清晰度和可维护性。 **3. 实施要求** - **时间限制**:考虑到一周...
SpringMVC的DispatcherServlet是入口点,它根据请求映射信息分发到相应的处理器(Controller),再由Controller调用Service层处理业务,Service层通常会调用DAO层来操作数据库。 MyBatis是一个轻量级的持久层框架,...
根据设计完成编码工作,包括编写Action类、Service接口及其实现、DAO类等,同时配置Struts2框架,实现页面跳转和数据绑定。 3.4 测试阶段 进行单元测试、集成测试和系统测试,确保每个功能模块正常运行,修复发现的...
2. 事务管理:在Struts中,事务通常在服务层(Service Layer)进行管理,可以使用编程式事务或者声明式事务(如Spring的@Transactional注解)。 总结,本笔记详尽地记录了在Struts框架下如何进行数据库操作,涵盖了...
在"ServiceDemo"这个文件名中,我们可以推测这是演示了服务层(Service层)的代码,这部分通常包含业务逻辑处理,与DAO层交互,处理数据验证、计算等任务。服务层是MVC架构中的关键部分,它将控制逻辑与数据操作解耦...
每个模块都会涉及到对应的服务层(Service)和DAO(Data Access Object)层,Service层负责业务逻辑,DAO层则负责与数据库交互。系统可能还会有自定义的过滤器、拦截器来实现权限控制、日志记录等功能。 总的来说,...
SSH整合流程是Java Web开发中常见的...在实际开发中,还需要根据业务需求编写具体的Action类、Service层和DAO层代码,以及数据库相关的SQL语句。理解SSH整合的流程有助于开发者更好地掌握Java Web开发,提高开发效率。
3. Controller方法调用Service层的业务逻辑,这里的Service通常由Spring管理,依赖注入了DAO层(数据访问对象)。 4. DAO层使用Hibernate提供的API执行数据库操作,如Session的save()方法实现新增,update()方法实现...
利用SpringBoot的Controller和Service层设计,实现业务逻辑。 3. 分类模块:数码论坛可能涉及手机、电脑、摄影等多个分类,用户可以根据兴趣浏览不同板块。 4. 搜索模块:提供关键字搜索功能,方便用户查找相关信息...
在登录注册系统中,Spring可以用来创建和管理DAO(Data Access Object)、Service等层的实例,通过配置XML或使用注解实现依赖注入。 SpringMVC是Spring的一个模块,用于处理HTTP请求和响应,实现前端控制器模式。它...
之后,作者通过编写Java代码实现了系统的各项功能,这部分可能涉及JSP页面、Controller、Service及DAO层的代码编写。 论文最后的部分是对整个项目的总结,作者分享了在开发过程中的心得体验,强调了系统实施后对...
- Service:业务逻辑层,处理业务规则,调用DAO层操作数据。 - Controller:处理HTTP请求,调用Service层,返回视图或JSON数据。 2. **src/main/resources**:配置文件和资源文件的存放地,如Spring的配置文件、...
控制器层是前后端交互的关键,它接收前端的请求,调用服务层(Service)进行业务处理,然后将结果返回给前端。 服务层(Service)是业务逻辑的核心,它封装了复杂的业务规则和操作。例如,汽车资讯的发布、评论的...
1. 基于Spring+SpringMVC+Mybatis的框架,Dao层、Service层、Controller层分离 2. MySQL数据库存储用户、新闻、公告、帖子、知识分享等信息 3. Elasticsearch实现新闻、公告、帖子、知识分享搜索 4. 前端使用JSP、...
DAO和Service通常被设计为单例,以提高性能和资源利用率。而Action通常配置为多例(Prototype),因为每个HTTP请求可能需要一个独立的Action实例,以保持请求间的状态隔离。 6. **SessionFactory配置**: `...
6. **Service层开发**:利用Spring的依赖注入,将DAO注入到Service中,编写业务逻辑。 7. **Controller层开发**:创建Controller,处理HTTP请求,调用Service方法,并将结果返回给前端。 8. **视图渲染**:使用JSP...
7. **编写Controller层**:处理前端请求,调用Service层方法。 8. **前端开发**:使用HTML、CSS、JavaScript等技术实现前端页面。 9. **集成测试**:确保各层之间的正常交互。 10. **部署上线**:将项目部署到服务器...
为能和大家能共同探讨"设计模式",我将自己在学习中的心得写下来,只是想帮助更多人更容易理解 GoF 的《设计模式》。由 于原著都是以C++为例, 以Java为例的设计模式基本又都以图形应用为例,而我们更关心Java在中间件等...