更好的方法是什么?
让我们假设一个场景,其中有一个由其他类使用的实用程序类。在这种情况下使用什么更好,一个单例类可以实例化一次,还是应该让所有的fieds都是静态的?
答案 0 :(得分:0)
在面向对象编程中,如果可能的话,你应该避免使用单例和实用程序类。
然而,如果真的需要我会使用没有任何字段的实用程序类 - 只是静态方法。根据定义,实用程序应该是无状态函数集。与不可测试的单例(用静态场完成)相比,这是可以很好地测试的。如果你需要保持状态然后转向真实物体。
如评论中所述,您可以通过依赖注入完成安全单例,而无需静态。