DAO和Factory模式有什么区别?该怎么处理
来源:互联网 发布:中国经济数据网站 编辑:程序博客网 时间:2024/04/28 05:48
在软件开发中DAO通常是DB获取数据并return一个Bean实例以方便程序使用,最近在看设计模式其中“创建型”模式中的工厂模式定义,所有“产品”都应该用一个工厂来创建哪他们到底有什么不同呢?是不是所有的DAO都可以用Factory模式封装呢?
例如:
某人吃苹果这样的逻辑。
理论上我首先要找到吃苹果的“人”,通常这里要到了一个DAO来查询“某人”,也就是说我要创建一个“人”的对象;模式中说的明白创建对象用Factory那么这个DAO到底是不是这个Factory呢?
------解决方案--------------------------------------------------------
Factory是用来创建对象的。
DAO模式是用来隔离数据访问和业务逻辑的,可以与Factory模式配合使用。
------解决方案--------------------------------------------------------
Factory模式意图:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。
DAO:
是Data Access Object数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。
DAO其实是另一种设计模式,旨在将所有对数据源的访问操作抽象封装在一个公共API中。就是说,先建立一个接口,程序错误,接口中定义了此应用程序中将会用到的所有事务方法,java环境变量设置。在应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。
------解决方案--------------------------------------------------------
Factory模式:
1、提供创建对象的接口
2、工厂模式相当于创建实例对象的new
DAO:
1、一般基于接口编程
2、将业务逻辑与数据访问分离,即常说的解耦
3、封装与数据库打交道的相关操作
4、提供了可共用的数据库操作接口
------解决方案--------------------------------------------------------
可参考:
请教Abstract Factory 与builder模式的区别 http://www.myexception.cn/cpp/276638.html
相关的主题文章:
例如:
某人吃苹果这样的逻辑。
理论上我首先要找到吃苹果的“人”,通常这里要到了一个DAO来查询“某人”,也就是说我要创建一个“人”的对象;模式中说的明白创建对象用Factory那么这个DAO到底是不是这个Factory呢?
------解决方案--------------------------------------------------------
Factory是用来创建对象的。
DAO模式是用来隔离数据访问和业务逻辑的,可以与Factory模式配合使用。
------解决方案--------------------------------------------------------
Factory模式意图:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。
DAO:
是Data Access Object数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。
DAO其实是另一种设计模式,旨在将所有对数据源的访问操作抽象封装在一个公共API中。就是说,先建立一个接口,程序错误,接口中定义了此应用程序中将会用到的所有事务方法,java环境变量设置。在应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。
------解决方案--------------------------------------------------------
Factory模式:
1、提供创建对象的接口
2、工厂模式相当于创建实例对象的new
DAO:
1、一般基于接口编程
2、将业务逻辑与数据访问分离,即常说的解耦
3、封装与数据库打交道的相关操作
4、提供了可共用的数据库操作接口
------解决方案--------------------------------------------------------
可参考:
请教Abstract Factory 与builder模式的区别 http://www.myexception.cn/cpp/276638.html
相关的主题文章:
- extjs表单验证解决思路
- android的shape用法请问
- can not find a free port to use解决方法
- DAO和Factory模式有什么区别?该怎么处理
- DAO和Repository有什么区别
- new一个类对象和使用类名创建一个对象有什么区别?该怎么解决
- 框架和模式有什么区别?
- ado、dao、odbc有什么区别?
- jsp脚本和jsp表达式有什么区别?怎么用?
- WINCE下内核模式和用户模式有什么区别?
- WINCE下内核模式和用户模式有什么区别
- 浏览器的标准模式和怪异模式有什么区别?
- Quirks模式是什么?它和Standards模式有什么区别?
- B/S和c/s结构模式有什么区别
- raid功能中spanning和striping模式有什么区别?
- raid功能中spanning和striping模式有什么区别?
- fopen打开文件模式rb和rb+有什么区别
- MVVM模式中ViewModel和View、Model有什么区别
- ADT bundle和Eclipse和Android Studio有什么区别?安卓开发该用哪个?
- Factory模式和Abstract Factory模式的区别
- /和../和~/有什么区别
- JSP向Action中传表单的统一编码处理。
- 自我介绍
- FFMpeg写MP4文件例子分析
- 用java实现生产和消费
- 第7周任务3
- DAO和Factory模式有什么区别?该怎么处理
- 关于windows下PC控制AR.Drone的IP配置相关问题
- JAVASCRIPT 基础总结
- c#读取excel的过于智能有关问题
- 数学运算
- 第七周实验报告(一)
- 2012C++程序设计实验报告【7.2】
- hql 日期格式化有关问题
- 常用JQuery插件整理