java中DAOFactory类的作用?

java中DAOFactory是一种专门生产DAO的工厂模式。作用是:1 透明化:商业对象可以在完全不知道数据源如何具体实现的情况下来使用数据源. 访问数据源是透明的,因为实现细节已经被隐藏进了DAO.2 迁移简单化:DAO 层的出现,使得应用程序向不同的数据库实现进行迁移变的容易.商业对象可以对底层数据实现一无所知...
java中DAOFactory类的作用?
  java中DAOFactory是一种专门生产DAO的工厂模式。
  作用是:
  1 透明化:
  商业对象可以在完全不知道数据源如何具体实现的情况下来使用数据源. 访问数据源是透明的,因为实现细节已经被隐藏进了DAO.
  2 迁移简单化:
  DAO 层的出现,使得应用程序向不同的数据库实现进行迁移变的容易.商业对象可以对底层数据实现一无所知.这样,迁移只涉及到了对DAO层的修改. 另外,如果使用工厂策略,则使为每一种底层数据实现提供一个具体的工厂实现成为可能.在这种情况下,迁移到一种不同的数据实现,其实就相当于为这个应用程序再提供一个新的工厂实现.
  3 减少在商业对象中的编程难度.
  由于DAO管理着所有的数据访问细节,因而大大简化了在商业对象和其他使用DAO的数据客户端里的代码.所有的实现细节相关的代码比如(SQL 语句)都包含在DAO而不在商业对象中. 这样使得代码变的更加健壮而且大大提高了开发效率.
  4 将所有的数据访问都单独集中到一层中去.
  因为所有的数据访问操作现在都已经被DAO所代理,所以这个单独的数据访问层可以被看作可以是将数据访问实现和其余应用程序相互隔离的一层. 这样的集中,使得应用程序可以更加容易的来维护和管理.
  缺点:
  5 对容器管理持久化无用
  由于EJB容器使用CMP(容器管理持久化)来管理实体BEAN. 容器会自动的为持久化储存访问提供服务.应用程序使用容器管理的实体BEAN则不需要 DAO层的参与.因为应用程序服务器本身就可以透明的提供这些功能.然而,DAO在组合式CMP和BMP需要的场合下还是有用的.
  6 增加了多余的层.
  由于DAO在数据客户端和数据源之外多创建了一层对象,因而,需要对他进行设计和实现,来均衡这个设计模式的利弊. 但是,一般来说,采用此设计模式还是利大于弊的.
  7 需要对类的相互继承关系进行设计.
  当使用工厂策略的时候,具体工厂类的继承关系和由这些工厂类生成的产品需要进行设计和实现. 我们需要仔细考虑这些多付出的工作是否真的可以产生出来更高的灵活性. 使用这个策略会使设计变的更加复杂,然而,你可以先从工厂方法模式开始来实现这个策略,然后在需要的情况下再转向抽象工厂。2015-07-08
getPersonDAOInstance()这个方法是静态方法,可以通过DAOFactory.getPersonDAOInstance();调用. 而它返回的是一个PersonDAOImpl 的对象.

说的简单点就是:
PersonDAOImpl p = DAOFactory.getPersonDAOInstance(); 等同于
PersonDAOImpl p = new PersonDAOImpl();2012-01-18
这个静态工厂用于取得真实主题类的实例化对象,去调用真实的数据层操作。2012-01-12
mengvlog 阅读 8 次 更新于 2025-07-20 05:10:40 我来答关注问题0
  • 在Java中,DAO模式本身代表数据访问层,但在此模式下,可以进一步进行分层设计以满足不同的需求。DAO模式的分层通常分为初级DAO模式和高级DAO模式。初级DAO模式: 定义:初级DAO模式是指针对某一张表创建一个DAO类,该类包含对该表的所有操作方法。外部通过调用这个类的方法来实现对某张表的操作,而无需...

  • 上面的编码DaoFactory是关键,通过这个这个工厂只返回给我们接口实例,这样就屏蔽了不同数据库的差异性(如果用户使用的是mysql数据库就会返回new MySqlDepartmentDaoImpl ()反之为new OracleDepartmentDaoImpl ())。我们在编码中只需要通过DepartmentDao deptDao = DaoFactory.getDepartmentDao();deptDao.fi...

  • 1、在表现层引用PersonDAO personDAO=new PersonDAOImpl()类是干什么的?答:PersonDAO personDAO=new PersonDAOImpl()引用这句话让表现成取得DAO对象,表现成可以通过“personDAO.方法”来对数据库person表进行操作。2、又写了个PersonDAOJDBCImpl.java类,在表现层全部改成这个类是说的什么意思?答:...

  •  倍领趣闻 简单工厂工厂方法

    在编程中,"简单工厂"工厂方法是一种设计模式,用于创建特定类型的对象,而无需暴露对象的创建细节。例如,你可能会创建一个名为Factory的类,该类有一个静态方法creator,根据传入的参数(如整数1或2)返回SampleA或SampleB的实例。当你在程序中需要实例化Sample对象时,只需调用Factory.creator(1),这...

  • anonymous Exception in thread "main" java.lang.NullPointerException at dao.proxy.BookDAOProxy.doDelete

    上面引用的对象是空 的,没有付到值 明显

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部