Component
和 Service
类型的 bean 和大多数其他 bean 类型默认是单例的。
在我的一个代码 Pull 请求中,我在 Component
中将一个方法声明为静态方法,因为该方法没有修改任何类级变量。
我的代码审阅者指出,由于该类无论如何都是单例并且将有一个引用,他说没有必要将方法设为 static
,而是将其设为 实例
方法。
由于我的应用程序中的大多数类都是单例,哪种方式是正确的代码编写方式?
最佳答案
您的审阅者可能是对的,在单例中声明静态方法毫无意义;除非这个静态方法是一个返回单例实例本身的工厂方法。
我可以想到另外两个不在单例中声明静态方法的原因:在某些情况下静态方法的测试更难,而且你真的会混淆这个单例的调用者。他/她可能会看到有一个静态方法并且很难理解为什么这样声明它,据我所知,对于这样的方法需要额外的推理。
关于java - spring 中的单例可以有静态方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54252763/