这个原则很简单,就是使用私有构造函数防止类被实例化。
有时,我们会写一些工具类,如java.lang.Math 或是 java.util.Arrays, 这些类中都是静态函数,在设计的时候,这些类并不是用来被实例化的。这个时候,就很有必要把构造函数私有化。
public class UtilityClass {
private UtilityClass() {
throw new AssertionError();
}
}
更保险的是在构造函数中抛个异常。
当然,这种方法的缺点还是有的,就是这个类不能被继承了。