标签:机制 通过 except 封装 eve get 无法 illegal 需要
//实例对象父类 public class Vehicle { }
//vehicle工厂类
public class VehichleFactory { // 用map对象保存产品ID及其对应的分类 private static Map<String, Class> registeredProducts = new HashMap<String, Class>(); // 注册vehicle public void registerVehicle(String type,Class vehicleClass) { registeredProducts.put(type, vehicleClass); } //获取vehicle实列对象 public Vehicle createVehicle(String type) throws InstantiationException, IllegalAccessException { Class vehicleClass = registeredProducts.get(type); return (Vehicle) vehicleClass.newInstance(); } }
在某些情况下,反射机制并不适用。比如,反射机制需要权限,这在某些特定的环境是无法实现的。反射机制也会降低程序的运行效率,在对性能要求较高的场景下应该避免使用这种机制。
使用newInstance 方法进行类注册的简单工厂模式
//在基类中添加一个抽象方法 public abstract class Vehicle { abstract public Vehicle newInstance(); }
public class VehichleFactory { // 用map对象保存产品ID及其对应的分类 private static Map<String, Vehicle> registeredProducts = new HashMap<String, Vehicle>(); // 注册vehicle public void registerVehicle(String type,Vehicle vehicle) { registeredProducts.put(type, vehicle); } //获取vehicle实列对象 public VehichleFactory.Vehicle createVehicle(String type) { return registeredProducts.get(type).newInstance(); } }
标签:机制 通过 except 封装 eve get 无法 illegal 需要
原文地址:https://www.cnblogs.com/archer-wen/p/11963818.html