java - spring 中的单例可以有静态方法吗?

标签 java spring oop design-patterns singleton

ComponentService 类型的 bean 和大多数其他 bean 类型默认是单例的。

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

我的代码审阅者指出,由于该类无论如何都是单例并且将有一个引用,他说没有必要将方法设为 static,而是将其设为 实例方法。

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

最佳答案

您的审阅者可能是对的,在单例中声明静态方法毫无意义;除非这个静态方法是一个返回单例实例本身的工厂方法。

我可以想到另外两个不在单例中声明静态方法的原因:在某些情况下静态方法的测试更难,而且你真的会混淆这个单例的调用者。他/她可能会看到有一个静态方法并且很难理解为什么这样声明它,据我所知,对于这样的方法需要额外的推理。

关于java - spring 中的单例可以有静态方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54252763/

相关文章:

Java - 检查文件是否在打印队列/正在使用中

java - @Value 不是通过 Java 配置的测试上下文设置的

spring - Spring - SpEL 容易受到攻击吗?

asp.net-mvc - 在应用 SOLID 原则时需要帮助

ios - 如何为 View Controller 提供指向已初始化单例对象的指针?

java - 打印出由星号组成的字母 E - 我的程序可以运行,但我不明白为什么

java - 语句参数的 Hibernate 跟踪值,除了 blob

java - 使用循环 for 将内容添加到 linkedList java

javascript - 管理来自 java spring 方法的 http.get 响应

php oop 编程 : building a class