最佳实践:为仅具有静态方法的类创建私有构造函数

时间:2017-05-06 21:34:27

标签: java

对于只使用静态实用方法且没有实例变量(完全无状态)的类,添加私有无参数构造函数(无效)是一种正确/推荐的做法吗?

我的理由是,我想避免任何使用此类的客户端通过实例化它,并且总是希望以静态方式访问此类的方法。私有构造函数帮助我在我的实用程序类中添加此限制。

我也将我的静态类定义为final,以避免任何客户端扩展它们;这是一种正确的做法吗?

1 个答案:

答案 0 :(得分:0)

是的。 为了确保没有人实例化,最好的做法是定义一个私有的无参数构造函数,该构造函数抛出IllegalStateException。 例如,对于StringUtils类,我将定义以下构造函数:

private StringUtils() {
    throw new IllegalStateException("StringUtils class");
}