class A
{
public int i = 20;
private static A a = new A(); // 这里加个private ,将其变成了一个私有属性;
private A()
{
}
public static A getA()
{
return a;
}
}这段程序的作用是什么,为什么要这样写了,其实际用途又是什么?
{
public int i = 20;
private static A a = new A(); // 这里加个private ,将其变成了一个私有属性;
private A()
{
}
public static A getA()
{
return a;
}
}这段程序的作用是什么,为什么要这样写了,其实际用途又是什么?
通过它自己的方法 getA()来获取自己的静态实例.因为是静态的,那么它获取的对象,永远就是同一个对象了.
这就是设计模式中的单例模式.为什么要这样呢?举个实际的例子:
以前大臣们向皇帝汇报工作,因为中国只有一个皇帝,所以 大臣1,大臣2,大臣3..汇报的都是同一个人,在我们
要用到皇帝对象时,我们不能每次都新建一个,那样就导致有很多的皇帝了.
通过上面getA(),我们拿到的都是同一个皇帝,这样才是正确的.
class Singleton {
private static Singleton instance=null;
private Singleton(){}
static Singleton getInstance() {
if(instance==null)
instance=new Singleton();
return instance;
}
}