使用工具类时尽量使用私有的无参构造函数
以某个工具类来说,如果其只提供静态参数和静态方法,则这个工具类完全不需要实例化。
然而,在缺少显式构造器的情况下,编译器会自动提供一个无参的,共有的构造函数。
所以为了避免这个情况,我们要主动的提供一个私有的无参构造函数来避免工具类自动实例化。
下面时 SHA-256加密算法工具类,用来举例。
/**
* @author lyn
* @date 2020-1-9 11:02
*/
public class SHA256Util {
/** 私有构造器 **/
private SHA256Util(){}
/** 加密算法 **/
public final static String HASH_ALGORITHM_NAME = "SHA-256";
/** 循环次数 **/
public final static int HASH_ITERATIONS = 10;
/** 执行加密-采用SHA256和盐值加密 **/
public static String sha256(String password, String salt) {
return new SimpleHash(HASH_ALGORITHM_NAME, password, salt, HASH_ITERATIONS).toString();
}
}