单例设计模式
单例设计模式是指一个类只会生成一个对象,优点是他可以确保所有对象都访问唯一实例。
具体实现代码如下:
实现方式一:
public class Singleton {
private static Singleton sing = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return sing;
}
}
实现方式二:
public class Singleton {
private static Singleton sing = null;
private Singleton(){}
public static Singleton getInstance(){
if(sing == null){
sing = new Singleton();
}
return sing;
}
}
至于这个程序为什么可以只生成一个对象,我们就要说一说我们为什么这么写这个程序了,首先当我们要生成对象的时候,第一件事就是掉用这个类的构造方法,只要一个类的构造方法可以被外界所调用,那么就可以生成无数个该类的对象。所以我们第一件事就是将构造方法用private私有化。但此时我们的类一个对象也生成不出来了。这时我们又在类的内部写了一条语句:
private static Singleton sing = new Singleton();
有了这条语句我们就可以生成了一个对象,但是是在类的内部,我们为了把他取出来,我们写了getInstance()
方法,所以就有了我们以上的程序,说完大家就应该可以明白为什么他可以只生成一个对象了,这就是单例设计模式。第一种方式和第二种实现方式的区别在于,第二种实现方式是一种延迟加载的方式,可以不用在使用这个类的时候立马创建这个对象,不过这种实现方式不保证在并发情况下对象是单例的。