ObjectFactory对象工厂类

本文介绍了一个使用Java实现的对象工厂设计模式案例,通过该模式可以创建单例或原型类型的对象。对象工厂采用Hashtable来存储已创建的对象实例,以避免重复创建同一类的多个实例,从而节省资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



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;
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值