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

Vin*_*eti 2 java oop singleton spring design-patterns

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

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

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

由于我的应用程序中的大多数类都是Singletons,哪种方法才是编写代码的正确方法?

Eug*_*ene 5

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

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