一般针对工具类,既不需要创建,也不需要继承扩展。工具类中方法声明为static方法,那么应该采用哪种格式哪?
一般采用两种格式:
(1) 将工具类声明为抽象类。
public abstract class GenericTypeResolver
采用这种的主要有名的Spring框架。
Spring的JdbcUtils类如下:
public abstract class JdbcUtils
{
public JdbcUtils()
{
}
优点:在子类中可以去扩展的,所以采用抽象的类,但是不能创建。
(2)将工具类声明为公共类,创建私有构造;
public class GenericTypeResolver
{
private GenericTypeResolver()
{
}
.................................
}
采用这种方式的有JDK中采用这种方式的有Math类
源码如下:
public final class Math {
/**
* Don't let anyone instantiate this class.
*/
private Math() {}
禁止让子类继承采用public final Class Math并且构造函数为私有的。