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


相关的主题文章:
  • extjs表单验证解决思路
  • android的shape用法请问
  • can not find a free port to use解决方法
原创粉丝点击