我最近一直在阅读单身人士,我常常看到如下代码:
private static SingletonDemo instance = null;
在Singleton类中作为一个字段.
我不想特别了解'静态'在做什么以及为什么需要它.
我在这里阅读了Oracle网站.并且他们使用a numOfBicycles
(这是你有多个自行车的时候)的例子来证明使用静态字段,但我认为我正在理解为什么在你只是实例化1个实例时使用它.
关键是你需要一种方法来访问已经创建的单个实例 - 它实际上是一个全局变量.这正是静电场所达到的目标.(至少,就相关的类加载器而言,它是全局的,这在大多数情况下都是重要的.)
如果它是一个实例变量,那么如果你已经引用了单例对象,那么你只能找到对单例对象的引用,这使它变得毫无意义.
大多数单例实现都有静态getInstance
方法或类似的东西.考虑如何在没有静态字段的情况下实现它,并且您可能更好地了解它为什么需要它.
(顺便说一句,在大多数情况下,我建议不要使用单例模式.使用依赖注入的方式最终只能在生产中创建一个实例,但每个类本身不是单例,通常最终会给你更可测试和灵活的代码.)