Singleton Class或Class只有静态字段?

时间:2016-08-30 15:36:33

标签: java design-patterns

更好的方法是什么?

让我们假设一个场景,其中有一个由其他类使用的实用程序类。在这种情况下使用什么更好,一个单例类可以实例化一次,还是应该让所有的fieds都是静态的?

1 个答案:

答案 0 :(得分:0)

在面向对象编程中,如果可能的话,你应该避免使用单例和实用程序类。

然而,如果真的需要我会使用没有任何字段的实用程序类 - 只是静态方法。根据定义,实用程序应该是无状态函数集。与不可测试的单例(用静态场完成)相比,这是可以很好地测试的。如果你需要保持状态然后转向真实物体。

如评论中所述,您可以通过依赖注入完成安全单例,而无需静态。