Spring应用程序中的实用程序类 - 我应该使用静态方法还是不使用静态方法?

2022-08-31 14:11:50

假设我有一个实用程序类DateUtil(见下文)。若要使用此方法,调用方方法使用 DateUtils.getDateAsString(aDate)。删除静态修饰符并使DateUtil成为弹簧豆(请参阅DateUtilsBean)并将其注入调用类还是仅将其保留原样会更好?

我可以看到使用静态的一个缺点是模拟问题,请参阅如何使用静态方法模拟?

public class DateUtils {

    public static String getDateAsString(Date date) {       
        String retValue =  "" // do something here using date parameter
        return retValue;
    }
}

春豆版

@Component
public class DateUtilsBean {

    public String getDateAsString(Date date) {      
        String retValue =  "" // do something here using date parameter
        return retValue;
    }
}

答案 1

我不这么认为。DateUtils 类听起来像是一个纯实用程序类,没有任何副作用,只是处理输入参数。这种功能也可以保留在静态方法中。我不认为你很可能会想要嘲笑约会助手方法。


答案 2

我同意肖恩·帕特里克·弗洛伊德的观点。

这是我的标准:如果类的方法只在它们收到的参数上做事,没有外部依赖关系(数据库,文件系统,用户配置,其他对象/bean等),那么我会用静态方法做,通常是在具有私有构造函数的最终类中。

否则,我会使用Spring Bean来实现它。

因此,在你提出的情况下,根据这个标准,我会用静态方法编写一个类。

问候。


推荐