对于全部是静态方法的工具类或静态工厂类,该类只需要通过静态调用即可,不需要创建类对象。因此需要强制把构造函数设置成私有的,以避免使用方自己new出对象来调用。
用抽象类来避免使用方实例化的方式虽然可以解决被实例化的问题,但是在使用方看来,可能会误以为该类是用来继承的。
...
// Noninstantiable utility class
public class UtilityClass {
// Suppress default constructor for noninstantiability
private UtilityClass() {
throw new AssertionError();
}
... // Remainder omitted
}
...