1 工具类(utility class)
只包含静态方法和静态域的类,例如:
- java.lang.Math、java.lang.Arrays等,把基本类型的值或者数据类型上的相关方法组织起来
- java.util.Collections等,把实现特定接口的对象上的静态方法,包括工厂方法组织起来
2 显示声明私有构造器
- 这样的工具类,对它们实例化没有任何意义,因此可以显示声明一个私有的构造函数
- 如果不声明任何构造函数,编译器会自动提供一个public的默认构造方法
- 这种习惯用法有点违背直觉,好像构造器就是专门设计成不能被调用一样。所以可以增加注释说明一下
public class Arrays {
// Suppresses default constructor, ensuring non-instantiability.
private Arrays() {}
public static XXX XXX(){...}
...
}