• 工厂模式 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);
            }
        }
        
        
    }

  • 相关阅读:
    2017中国大学生程序设计竞赛
    2017中国大学生程序设计竞赛
    2017中国大学生程序设计竞赛
    2017中国大学生程序设计竞赛
    计算几何之凸包模板
    计算几何之凸包模板
    Kafka知识点汇总
    python 爬虫1 開始,先拿新浪微博開始
    iOS 7的手势滑动返回
    Ctrl+Enter 选中文本提交
  • 原文地址:https://www.cnblogs.com/baijin05/p/5072517.html
Copyright © 2020-2023  润新知