import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;/*** 对象工厂类* */
public class ObjectFactory {public static final String SINGLETON="singleton"; //单例public static final String PROTOTYPE="prototype"; //原型public static Map<String,Object> map = new Hashtable<String,Object>();public static synchronized Object createOject(Class clazz,String scope) throws ClassNotFoundException, InstantiationException, IllegalAccessException{if(clazz==null) return null;Object object  = null;String classStr = clazz.toString();if(MyStringUtil.strIsNullOrBlank(classStr) || MyStringUtil.strIsNullOrBlank(scope)) return null;if(SINGLETON.equals(scope)){if(map.containsKey(classStr)){return map.get(classStr);}else{object = createObject(classStr);map.put(classStr, object);} }else if(PROTOTYPE.equals(scope)){object = createObject(classStr);}return object;}private static  Object createObject(String clazz) throws InstantiationException, IllegalAccessException, ClassNotFoundException{Object object=Class.forName(clazz.toString()).newInstance();return object;}}

ObjectFactory对象工厂类相关推荐

  1. 一、静态工厂的第四个优点是返回对象的类可以根据输入参数的不同而不同。...

    静态工厂的第四个优点是返回对象的类可以根据输入参数的不同而不同. 声明的返回类型的任何子类都是允许的. 返回对象的类也可以随每次发布而不同. EnumSet类(条目 36)没有公共构造方法,只有静态工 ...

  2. Spring 创建对象的问题,不同构造方法创建对象,使用工厂类类获取对象、单例或多例、延迟创建问题

    创建实体类Student package star.july.b_ioc; public class Student {private String name;private int age;publ ...

  3. 类对象工厂设计模式(Factory Pattern)

    本文朋友在深圳逛街的时候突然想到的...这段时间就有想写几篇关于类对象的笔记,所以回家到之后就奋笔疾书的写出来发布了 提供了比工厂模式更高一级的接口级,用于返回若个工厂之一.这个模式是属于创立模式之一 ...

  4. Mybatis源码阅读(一):Mybatis初始化1.2 —— 解析别名、插件、对象工厂、反射工具箱、环境

    *************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...

  5. boost::factory实现对象工厂设计模式

    转载自:http://blog.csdn.net/mpforwd/article/details/5791699 #ifndef MP_OBJECT_FACTORY_H #define MP_OBJE ...

  6. 设计模式之工厂类模式总结对比、简单工厂模式、工厂方法模式、抽象工厂模式、带反射的工厂模式、例子代码分析、最详细

    1. 题目 假设某公司同时用SqlServer.MySql数据库,即会切换两数据库(不同数据库的sql语句有些许差异),同时,两数据库里均有对Users.Departments表的操作(sql代码不一 ...

  7. javascript对象、类与原型链

    js是一个基于对象的语言,所以本文研究一下js对象和类实现的过程和原理. 对象的属性及属性特性 下面是一个对象的各个部分: var person = {name: "Lily",a ...

  8. 生成对象---工厂方法模式

    问题 当代码运行时我们才知道要生成的对象类型(BlogApptEncoder或者MegaBlogApptEncoder) 我们需要能够相对轻松的加入一些新的产品类型(如一种新业务处理方式SyncMl) ...

  9. 基于动态代码生成技术的动态对象工厂

    C#中所有的引用类型的实例都需要在运行时动态创建,创建对象实例最常见的办法就是使用new操作符,使用new操作符就需要在编译器明确的知道要创建的对象的类型,如果在编译器并不能明确,就需要用到反射技术, ...

最新文章

  1. 《淘宝店铺经营管理一册通》一一1.3 页面中的图片应用
  2. Qt只QStringList的简单使用方法
  3. collections之defaultdict
  4. 二、“究恒常之宇宙,成一家之学说”
  5. 阿里云 Serverless 事件总线 EventBridge 重磅发布
  6. Vue项目从无到有的部署上Github page
  7. JAVA Junit error java.lang.SecurityException: class junit.framework.JUnit4TestCaseFacade
  8. 【算法系列之六】两整数之和
  9. 草稿 前端开发 代码的编写习惯 缩进的意义 HTML的格式
  10. (49)VHDL实现8位奇偶校验电路(while loop语句)
  11. mysql装载本地文件及模式匹配
  12. mac 安装mysql
  13. Matlab —— 电路仿真
  14. 量子计算机介绍ppt,量子信息ppt
  15. 等比例压缩图片文件大小
  16. 如何使用Python3解二维码和编译二维码
  17. Transphorm推出第四代GaN平台及SuperGaN™功率FET
  18. 魔兽争霸dota内外网p2p联机玩游戏-不需要对战平台的联机
  19. 设计模式总结--------调停者模式
  20. Android基于Facebook Rebound的动画效果框架Backboard demo (非常炫酷)

热门文章

  1. C语言 数据结构 栈的数组实现 realloc函数
  2. C语言二维数组、参数传递的理解
  3. 理解zookeeper的一致性及缺点
  4. Ubuntu常用服务器环境搭建——Nginx+PHP篇
  5. php单机session消失_Session 失效的原因汇总及解决丢失办法
  6. 阻塞非阻塞和同步异步
  7. Web前端开发笔记——第三章 CSS语言 第七节 圆角边框、阴影
  8. 普通平键的主要尺寸有_艾创米:解密指纹锁锁体尺寸测量方法
  9. Web群集与日志管理Haproxy搭建
  10. 文件读取 xxe_漏洞笔记|记一次与XXE漏洞的爱恨纠缠