为什么在Java中使用静态帮助器方法不好?
我问是因为我试图使用一个模拟框架(Mockito),它不允许你模拟静态方法。在研究它时,我发现很多博客文章说你应该尽可能少的静态方法,但我很难理解为什么。具体来说,为什么不修改全局状态的方法基本上是帮助器方法。例如,我有一个名为具有多个静态方法的类。静态方法的目的之一是执行HTTP调用,处理服务器可能返回的任何自定义问题(例如,用户未登录)并返回响应。为了简化,像这样:ApiCaller
public class ApiCaller {
...
public static String makeHttpCall(Url url) {
// Performs logic to retrieve response and deal with custom server errors
...
return response;
}
}
要使用它,我所要做的就是调用Now,我可以很容易地使它成为一个非静态方法,例如:ApiCaller.makeHttpCall(url)
public class ApiCaller {
...
public String makeHttpCall(Url url) {
// Performs logic to retrieve response and deal with custom server errors
...
return response;
}
}
然后使用此方法调用,但这似乎只是额外的开销。任何人都可以解释为什么这很糟糕,如果有更好的解决方案使这些方法非静态(除了删除关键字),以便我可以使用模拟框架来存根这些方法?new ApiCaller().makeHttpCall()
谢谢!