04.使用私有化构造方法执行非实例化

使用私有构造方法执行非实例化

在某些时候,我们可能会创建一些只包含静态方法的工具类。一般情况下,我们不希望调用方创建这些类的实例,主要存在以下原因:

  • 工具类强调执行的过程,没有状态,它与具体的对象无关。
  • 为了避免因为创建对象导致额外的开销。在创建对象时,会产生包括内存分配和对象的初始化,对于静态的工具类而言,这些是没必要的。
  • 防止类被误用,同上。

针对以上的情况,推荐在静态工具类中添加一个私有的构造方法,避免创建类的实例。

public class JaxbConvertHelper {
    private JaxbConvertHelper() {
    throw new AssertionError();
    }
    public static void doSomething(){
    // xxxx
    }
}

类似文章