如何编写工具类 | 您所在的位置:网站首页 › java工具类编写 › 如何编写工具类 |
上篇的反射创建的对象工厂也是一个工具类 编写工具类俩种方式: 一: 1.工具方法都设为非static方法 2.将工具类设计为单列模式 3.注意这种方式需要获取工具类对象(实例化)才能调用方法 二: 1.工具方法设计为static方法 2.工具 类所有构造方法都设计为private修饰 3.工具类本身以abstract修饰(目的就是只能用类调用方法,不能实例化)
/***************************对象调用方式****************************/ public class BeanFactory { public BeanFactory(){ } public T getBeanFactory(String name,Class checkType){ Object obj; try { Class claz = (Class) Class.forName(name); obj = claz.newInstance(); if(!checkType.isInstance(obj)){ throw new IllegalArgumentException("参数类型不匹配"); }else{ return (T)obj; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } } /**************************static方式*************************/ abstract public class BeanFactory { private BeanFactory(){ } public static T getBeanFactory(String name,Class checkType){ Object obj; try { Class claz = (Class) Class.forName(name); obj = claz.newInstance(); if(!checkType.isInstance(obj)){ throw new IllegalArgumentException("参数类型不匹配"); }else{ return (T)obj; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } } /*************************** 枚举方式*********************************/ 枚举调用方式: Date date2 = BeanFactory.INSTANCE.getBeanFactory("java.util.Date",Date.class); package invokeBeanFactorty; /** * 利用java反射创建一个对象工厂 创建对象工厂模式 涉及到设计模式中的单列模式 * 最好用枚举的方式 * @author Administrator * */ public enum BeanFactory { INSTANCE; public T getBeanFactory(String name,Class checkType){ Object obj; try { Class claz = (Class) Class.forName(name); obj = claz.newInstance(); if(!checkType.isInstance(obj)){ throw new IllegalArgumentException("参数类型不匹配"); }else{ return (T)obj; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } } |
CopyRight 2018-2019 实验室设备网 版权所有 |