eon*_*eon 45 java methods spring static
假设我有一个实用程序类DateUtil(见下文).要使用此方法,调用方法使用DateUtils.getDateAsString(aDate).删除静态修饰符并使DateUtil成为一个spring bean(请参阅DateUtilsBean)并将其注入调用类或者保持原样是不是更好?
我可以看到使用静态的一个缺点是关于模拟的问题,请参阅如何使用静态方法进行模拟?
public class DateUtils {
public static String getDateAsString(Date date) {
String retValue = "" // do something here using date parameter
return retValue;
}
}
Run Code Online (Sandbox Code Playgroud)
春豆版
@Component
public class DateUtilsBean {
public String getDateAsString(Date date) {
String retValue = "" // do something here using date parameter
return retValue;
}
}
Run Code Online (Sandbox Code Playgroud)
Sea*_*oyd 30
我不这么认为.DateUtils类听起来像一个纯实用程序类,它没有任何副作用,只是处理输入参数.这种功能也可以保留在静态方法中.我不认为你很可能想要模拟日期助手方法.
Alb*_*ven 14
我同意肖恩帕特里克弗洛伊德.
这是我的标准:如果类的方法只对它们接收的参数做事,没有外部依赖(数据库,文件系统,用户配置,其他对象/ bean等),那么我会用静态方法做,通常在带有私有构造函数的final类中.
否则,我将使用Spring bean实现它.
所以,在你提出的情况下,根据这个标准,我会用静态方法编写一个类.
问候.
Mr.*_*art 11
最好将它声明为Spring bean,因为它的生命周期然后由Spring管理,你最终可以注入依赖项,汇集对象,以及以适当的方式测试它,而不是说你可以将它用作常规对象并将其作为参数传递,在子类中重新定义方法...等.
简而言之,是的,在大多数情况下它会是一个更好的设计.然而,在暴露的简单情况下,它没有很大的区别.
| 归档时间: |
|
| 查看次数: |
25809 次 |
| 最近记录: |