首页 > 代码库 > 单例 与 static

单例 与 static

 

单例的构造器是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设计成单例,就不会出现这样尴尬的局面