注意事项:
- 考虑工具类不应该被继承,所以类应该定义为final class
- 为了简明易懂,工具类的命名应该以Util结尾,eg:xxxUtil
- 工具类的构造方法应该首选是private的,同时工具类同时工具类的工具方法为
static
的 - 工具类使用单例模式,或者
static
初始化某个单例。只允许一个对象。
编写工具类俩种方式:
一:
1.工具方法都设为非static方法
2.将工具类设计为单列模式
3.注意这种方式需要获取工具类对象(实例化)才能调用方法
二:
1.工具方法设计为static方法
2.工具 类所有构造方法都设计为private修饰
3.工具类本身以abstract修饰(目的就是只能用类调用方法,不能实例化)
说静态类好的:
静态类不用引用就能调用,而单例需要有对象的引用,因此节约资源(影响微乎其微,可以忽略)静态类方便,随处可用;而单例必须有引用,很麻烦
说单例好的:
单例模式的类是普通的类,它具有面向对象的特性,方便扩展,对于有配置的工具类,可以轻松的创建多个不同配置的单例对象
结论:
如果没有配置信息的工具类,当然是静态类好,随处调用,不需引用爽得不要不要的。比如Math.abs(),如果写个单例,可能全世界都要笑话你了。如果有配置信息的工具类,最好还是使用单例模式吧,这样以后如果有多个数据源,你会感谢你自己。