大话设计模式读后感之工厂方法模式(DAO工厂)

xiaoxiao2021-02-28  108

工厂模式应该是每个JAVA初学者包括我在内最不陌生的一种设计模式,在学习简单的JDBC后,我们必然要对DAO工厂有所接触。

引入DAO层的主要目的是降低耦合度,将持久层与业务逻辑层分离,提高扩展和复用,也避免了之后更换持久层带来不必要的开销。

工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到子类

既然都说到了DAO层我正好也复习下,首先我们要明确DaoFactory是为了什么而存在的!? 

是为了创建我们所需要的JDBC对象而存在!

package dao; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Properties; /** * YBH * @author Administrator * */ public class DAOFactory { /* * DAO工厂 */ private static DAOFactory Instance=null; /** * 该例子使用了单例设计模式 * 步骤大概说下吧, * 1、私有化构造器 * @return */ private DAOFactory(){ } /** * 2、提供公开的创建对象方法 * 3、创建静态对象DAOFactory * 4、方法判断使他是同一个对象。 * @return */ public static DAOFactory getInstance(){ if(Instance==null){ Instance=new DAOFactory(); } return Instance; } public TestDAO createTestDAO(){ return new TestDAOImpl(); } } 一个简单的工厂方法模式大概就是上面这个样子!

但是现实中你不可能只有一个Test表需要操作,如果你需要增加新的对象就要在DaoFactory新加方法,这样子就变得不够完美了。

/** * YBH * @author Administrator * */ public class DAOFactory { /* * DAO工厂 */ private static DAOFactory Instance=null; /** * 该例子使用了单例设计模式 * 步骤大概说下吧, * 1、私有化构造器 * @return */ private DAOFactory(){ } /** * 2、提供公开的创建对象方法 * 3、创建静态对象DAOFactory * 4、方法判断使他是同一个对象。 * @return */ public static DAOFactory getInstance(){ if(Instance==null){ Instance=new DAOFactory(); } return Instance; } /** * 利用反射机制实现对象创建 * @param daoIndex daoimpl的地址如:dao.impl.UserDaoImpl * @return */ public Object getDAO(String daoIndex) { Class<?> clazz; try { clazz = Class.forName(daoIndex); return clazz.newInstance(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } 大概就是这个样子

转载请注明原文地址: https://www.6miu.com/read-49539.html

最新回复(0)