2014.5.11 DAO设计模式为什么要用到工厂类?
2014-05-11 21:58
197 查看
DAO设计模式为什么要用到工厂类?
Factory类统一管理DAO的实现类:需要获取DAO的实现类时,通过工厂类来获取(便于维护?缺少这块的使用经验,不能理解)
另见百度知道:《dao设计模式 解决的问题是什么》
通过DAO 设计 确 让我们 软件系统已经 数据层和表现层进行了简单 分离 让我们系统各层次 功能更加 清晰 所 我们开始洋洋得意了 DAO 引入让系统 耦合性更加 松散 表现层再也 需要关心 台数据操作 变化了 于 我们开始高枕无忧了 我们肆无忌惮 表现层通过调用DAO来实现我们 系统了 事实真 此 我们 举 例子来看看我们 系统 否真 具有解偶 能力了
现 我们有 员工管理系统 该系统 Person.java表示员工 对象 对应着数据库 person表 还有用于操作Person对象 DAO接口—PersonDAO.java 还有 PersonDAO 实现类PersonDAOImpl.java PersonDAOImpl.java 我们实现了操作Person对象 所有 方法 我们 自豪 说 看我们已经把操作封装 PersonDAO 了 现 我们 表现层(jsp 或者VO操作类 )使用PersonDAO personDAO=new PersonDAOImpl()来调用DAO操作我们 数据对象了 当我们陶醉于自己写 优美 代码 时候 项目经理来通知了 由于使用Hibernate 效率偏低 客户开始 满了 还 让我们重新用JDBC再重写 遍吧 于 所有DAO Hibernate实现开始全部转换成JDBC实现 项目经理建议 要破坏现有 Hibernate实现 通过技术研究来提升Hibernate 访问效率 于 我们开始写了又写了 套JDBC 实现—PersonDAOJDBCImpl.java 现 问题出来了 表现层大量 使用了PersonDAO personDAO=new PersonDAOImpl() 全部改成new PersonDAOJDBCImpl()谈何容易 我们 开始欲哭无泪了 解决类似 问题呢 于 我们开始引进DAO工厂模式 我们建立 类DaoFactory.java对DAO进行统 管理 DaoFactory.java: public class DaoFactory{ public static PersonDAO getPersonDAOInstance() { return new PersonDAOImpl() ; } //得 其 DAO实例 …… } 表现层通过PersonDAO personDAO=DaoFactory.get getPersonDAOInstance();来实例化DAO实例 样问题 解决了 DAO改变了 我们只需要 DAO工厂类 修改 下代码:return new PersonDAOJDBCImpl() ; 我们 应用 快速切换 JDBC实现了 见利用工厂模式 我们 系统又进 步 解耦 表现层真 无需再关系DAO层 变化了 切交给DAO工厂来解决
相关文章推荐
- 为什么业务中很少用到设计模式
- 为什么业务中很少用到设计模式
- Android经常用到的设计模式
- 设计模式(1):为什么使用设计模式
- Java 分层设计(DAO设计模式)
- OGRE中用到的设计模式
- J2EE之DAO设计模式
- mysql-3-DAO设计模式
- 浅谈java中dao工厂设计模式
- DAO设计模式
- 为什么设计模式java实现的书比较多,C++却很少.
- 项目中用到的设计模式
- Java中的DAO设计模式应用举例 ------> 来自Java WEB 开发实战经典
- 设计模式学习-为什么要采用设计模式
- 设计模式培训之一:为什么要用单例模式?
- J2EE之DAO设计模式
- 企业库中用到的重要设计模式:DependencyInjection(依赖注入)模式
- DAO设计模式
- Java web学习笔记之DAO设计模式
- 浅谈DAO工厂设计模式