package com.nfwork.dbfound.web; import java.util.HashMap; import java.util.Map; import com.nfwork.dbfound.exception.DBFoundRuntimeException; import com.nfwork.dbfound.web.base.BaseControl; /** * 对应配置文件中的Action */ public class ActionBeanFactory { private static Map<String, BaseControl> controlMap = new HashMap<String, BaseControl>(); public static BaseControl getControl(String className, boolean singleton) throws InstantiationException, IllegalAccessException, ClassNotFoundException { if (singleton) { BaseControl baseControl = controlMap.get(className); if (baseControl == null) { baseControl = controlMap.get(className); if (baseControl == null) { baseControl = instance(className); controlMap.put(className, baseControl); } } return baseControl; } else { return instance(className); } } private static BaseControl instance(String className) throws InstantiationException, IllegalAccessException, ClassNotFoundException { Object object = Class.forName(className).newInstance(); if (object instanceof BaseControl) { BaseControl baseControl = (BaseControl) object; return baseControl; } else { throw new DBFoundRuntimeException("Control必须要实现BaseControl接口"); } } }