春季的单身人士可以使用静态方法吗?

时间:2019-01-18 11:10:32

标签: java spring oop design-patterns singleton

ComponentService类型的bean,大多数其他类型的bean默认情况下都是单例。

在我的一个代码Pull请求中,我在Component中将一个方法声明为静态方法,因为该方法未修改任何类级变量。

我的代码审阅者指出,由于该类无论如何都是Singleton,并且将具有单个引用,因此他说没有必要使方法static,而是使它成为instance方法。

哪种代码是正确的代码编写方式,因为我的应用程序中的大多数类都是Singletons?

1 个答案:

答案 0 :(得分:5)

您的审阅者可能对此很正确,在单例内部声明静态方法几乎没有意义;除非此静态方法是返回单例实例本身的工厂方法。

我可能会想到另外两个原因,而不是在单例中声明静态方法:在某些情况下,对静态方法进行测试会更加困难,并且您确实会使该单例的调用者感到困惑。他/她可能会看到有一个静态方法,并且很难理解为什么要这样声明,就我所知,对于这种方法,它需要额外的推理。