zoukankan      html  css  js  c++  java
  • Java 设计模式之工厂

    一、Bean 工厂的定义

    package com.casic.test;

    import java.util.Properties;

    public class BeanFactory {

       // 声明配置属性

       private static Properties props;

       // 模拟加载配置文件信息

       static {

          props = new Properties();

          // UserDao 的实现方法定义

          props.put("UserDao", "com.casic.test.spring.UserDaoImpl");

       }

       /**

        * 获取Bean 工厂的实例

        * @param clazz 接口声明

        * @return 根据配置生成的对象

        */

       public static <T>T getBeanInstance(Class<T> clazz) {

          // 得到接口的简单限定名

          String className =  //

                props.getProperty(clazz.getSimpleName());

          try {

             // 根据反射得到对象

             return (T) Class.forName(className).newInstance();

          } catch (Exception e) {

             throw new RuntimeException(e);

          }

       }

    }

    二、Bean 工厂的调用

    package com.casic.test;

    public class UserServiceImpl {

       // 利用Bean 工厂获得一个UserDao 的实现

       private UserDao userDao = //

             BeanFactory.getBeanInstance(UserDao.class);

       public UserServiceImpl() {

          System.out.println("UserDao 所使用的 Dao :"//

                +userDao.getClass());

       }

    }

    三、接口定义

    package com.casic.test;

    public interface UserDao {

       public void printInfo();

    }

    四、实现定义

    package com.casic.test;

    public class UserDaoImpl implements UserDao {

        public void printInfo() {

          System.out.println("this is UserDaoImpl");

       }

    }

  • 相关阅读:
    Oracle SQL语句收集
    SqlParameter In 查询
    SQL 性能优化
    Entity Framework
    【XLL API 函数】 xlfSetName
    【XLL API 函数】xlfUnregister (Form 2)
    【XLL API 函数】xlfUnregister (Form 1)
    【Excel 4.0 函数】REGISTER 的两种形式以及VBA等效语句
    【Excel 4.0 函数】REGISTER
    【Bochs 官方手册翻译】 第一章 Bochs介绍
  • 原文地址:https://www.cnblogs.com/oftenlin/p/3096636.html
Copyright © 2011-2022 走看看