Component
和Service
类型的bean,大多数其他类型的bean默认情况下都是单例。
在我的一个代码Pull请求中,我在Component
中将一个方法声明为静态方法,因为该方法未修改任何类级变量。
我的代码审阅者指出,由于该类无论如何都是Singleton,并且将具有单个引用,因此他说没有必要使方法static
,而是使它成为instance
方法。
哪种代码是正确的代码编写方式,因为我的应用程序中的大多数类都是Singletons?
答案 0 :(得分:5)
您的审阅者可能对此很正确,在单例内部声明静态方法几乎没有意义;除非此静态方法是返回单例实例本身的工厂方法。
我可能会想到另外两个原因,而不是在单例中声明静态方法:在某些情况下,对静态方法进行测试会更加困难,并且您确实会使该单例的调用者感到困惑。他/她可能会看到有一个静态方法,并且很难理解为什么要这样声明,就我所知,对于这种方法,它需要额外的推理。