java设计模式之工厂模式

本文介绍如何利用工厂模式简化数据库操作层的实现,通过配置文件动态选择不同的数据库访问库,提高代码的复用性和扩展性。示例中展示了如何创建工厂类,配置数据库访问类,并在不同场景下灵活调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类或者是接口并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个父类或者接口,该类的子类通过不同的方法实现了父类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用父类中的方法而不必考虑到底返回的是哪一个子类的实例。

以下例子是我们在使用dao层进行数据库操作时,刚开始我们可能是用jdbc来操作数据库,但是当我们接触过了hibernate或者是JDO或者iBatis后,dao层的实现我们就可以用Hibernate的实现、iBatis的实现、jdo的实现了,这些dao的实现类写好后,我们只需要在配置文件里修改就可以达到修改不同的dao层实现了,而根本不需要修改到代码,可扩展性好


/**
 * 工厂类
 */

public class DaoFactory {

private UserDao userDao = null;

      private static DaoFactory instance = new DaoFactory();

private DaoFactory() {

         try {

            Properties prop = new Properties();                        

prop.load(DaoFactory.class.getClassLoader().getResourceAsStream("daoconfig.properties"));

            String userDaoClass= prop.getProperty("daoClass");

            Class<?> clazz= Class.forName(userDaoClass);

userDao = (UserDao) clazz.newInstance();

         } catch (Exception e) {

            throw newExceptionInInitializerError(e);

         }

      }

      public static DaoFactorygetInstance() {

      return instance;

      }

      public UserDaogetUserDao() {

         return userDao;

      }

}


public interface UserDao {

public void addUser(User u);

      public void deleteUser(Useru);

      public void updateUser(Useru);

      public void getUser(int id);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值