zoukankan      html  css  js  c++  java
  • 利用工厂模式实现serviec层和dao层解耦

    利用工厂模式实现serveice和dao层的解耦,这样就可以不用在service层实例化dao层的对象,当dao层代码发生改变的时候(数据库实现发生改变)直接修改配置文件就不用改变service层的代码。

    配置文件:dao.properties

    UserDao="com.dao.UserDaoJdbcImp" 如果是oracle实现就可以修改配置文件就行
    

      

    源代码:DaoFactory.java

     1 package com.demo;
     2 
     3 import java.io.IOException;
     4 import java.io.InputStream;
     5 import java.util.Properties;
     6 
     7 import org.hamcrest.Factory;
     8 
     9 //利用工厂模式实现业务层与DAO层解耦
    10 public class DaoFactory {
    11     private static Properties daoConfig = new Properties();
    12     private  static DaoFactory factory = new DaoFactory();
    13     private DaoFactory(){
    14         //加载配置文件
    15         InputStream in = DaoFactory.class.getClassLoader().getResourceAsStream("dao.properties");
    16         
    17         try {
    18             daoConfig.load(in);
    19         } catch (IOException e) {
    20             throw new RuntimeException();
    21         }
    22     }
    23     
    24     //获取工厂对象
    25     public static DaoFactory getInstance(){
    26         return factory;
    27     }
    28     
    29     public static <T> T createDao(Class<T> clazz){//这里传进来的是DAO接口
    30         String name = clazz.getSimpleName();//UserDao
    31         String className = daoConfig.getProperty(name);
    32         try {
    33             T dao = (T) Class.forName(className).newInstance();
    34             return dao;
    35         } catch (Exception e) {
    36              throw new RuntimeException(e);
    37         }
    38     }
    39 }
  • 相关阅读:
    NPOI 操作 excel 帮助类
    文件帮助类
    浮点数精度问题
    多段文本显示省略号
    数字排序
    删除字符串首位空格
    生成一定范围的随机数
    锚链接动画
    原生js转json
    弹出遮罩和对话框
  • 原文地址:https://www.cnblogs.com/niuchuangfeng/p/9163921.html
Copyright © 2011-2022 走看看