Java单例设计模式
- 含义:所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。
- 做法:如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造方法的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。
饿汉式
先在类中new一个对象,以后每次调用都使用的这一个对象
/**
* 实现一个饿汉式的单例模式
* @author win10
*
*/
public class Single {
//将构造方法设置为私有,防止new多个对象
private Single() {
}
//先new好一个对象,等待使用。因为是单例模式,所以每次只使用这一个对象,所以有static修饰,并且stsatic修饰的方法只能使用static修饰的变量
private static Single s=new Single();
//类外通过静态方法调用该类对象,所以需要public static修饰,返回值类型为Single类型,返回值为该类对象
public static Single getInstance() {
return s;
}
}
懒汉式
最开始对象是null,知道第一次调用时new一个对象,之后所有调用的都使用这个对象。
public class Single1 {
private Single1() {
}
private static Single1 s=null;
public static Single1 getInstance() {
if(s==null) {
s=new Single1();
}
return s;
}
}