使单例具有所有静态字段

问题描述 投票:0回答:1

我一直想知道,由于单例只允许使用一个对象的引用,而这是通过使用静态方法getInstance获得的,为什么我们不能决定将单例中的所有字段都设为静态?

java android singleton
1个回答
-1
投票

静态成员是课程的一部分,因此会保留在内存中,直到应用程序终止,无法进行垃圾回收。使用静态成员过多有时会预测您无法设计您的产品,并尝试使用静态/程序编程。它表示面向对象的设计已被破坏。这可能导致内存溢出。也有一定的缺点,例如,如果在Java中将任何方法设为静态,无法覆盖Java中的任何静态方法,因此使测试更加困难您不能用模拟替换该方法。自静态法保持全局状态,它们可以在并发中创建细微的错误难以检测和修复的环境。

© www.soinside.com 2019 - 2024. All rights reserved.