zoukankan      html  css  js  c++  java
  • 工厂模式 jdbc 面向接口dao 开发 单例

    package com.itheima.utils;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    import com.itheima.dao.UserDao;
    
    /**
     * 引入工厂,用于生成一些对象,为了生成的BeanFactory对象时,
     * 不会生成多个对象(因为BeanFactory作为一个工厂,只要有一个它的对象就可以 了),可以引入单例模式
     * 
     * 2.业务层要调用 Dao的什么 样的实现类,可以放入到配置文件
     * 3.读取配置文件
     * @author wangli
     *
     */
    public class BeanFactory {
    
        private BeanFactory(){}//私有构造
        
        private static BeanFactory instance = new BeanFactory();
        
        //再提供一个公有的方法
        public static BeanFactory getInstance(){
            return instance;
        }
        
        private static String DAO;//用于存储从bean.properties文件 中读取的值
        static{
            try {
                InputStream is = BeanFactory.class.getClassLoader().getResourceAsStream("bean.properties");
                Properties p = new Properties();
                p.load(is);
                DAO = p.getProperty("dao");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        
        public UserDao getUserDaoInstance(){
            try {
                Class clz = Class.forName(DAO);
                return (UserDao)clz.newInstance();//通过反射生成对象  UserDaoMySqlImpl的对象   UserDaoDom4jImpl的对象
            } catch (Exception e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
        
        
    }

  • 相关阅读:
    螺旋折线——第九届蓝桥杯C语言B组(省赛)第七题
    组合问题
    八皇后
    01背包(详解)
    最长递增子序列
    棋盘游戏
    The Accomodation of Students
    P3157 [CQOI2011]动态逆序对
    Building a Space Station
    焚风现象(差分模板题)
  • 原文地址:https://www.cnblogs.com/baijin05/p/5072517.html
Copyright © 2011-2022 走看看