单例的构造器是private的,不能直接用new 创建对象。static虽然可以随时使用,但是还是有被重新创建的可能。

举个例子,你希望任何时候有一个class A的实例就可以了
class B {
    static A a = new A();
}
这样以后所有代码大家都可以使用B.a来调用A里的方法。

但是可能在class C里
class C {
  public void getA {
          A a =new A();
  }
}

这个时候整个工程下出现了2个A的对象已经违背了你当初的设计,以后可能还会有更多的人new A();

如果你当时把A设计成单例,就不会出现这样尴尬的局面

相关文章:

  • 2021-08-14
  • 2021-12-20
  • 2021-09-07
  • 2022-01-08
  • 2021-09-12
  • 2022-12-23
  • 2021-10-23
  • 2021-09-27
猜你喜欢
  • 2021-12-25
  • 2022-12-23
  • 2022-12-23
  • 2023-04-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案