单例设计模式
保证一个类在内存中的对象唯一性。
思想:
1, 不让其他程序创建该类对象,私有化 本类构造函数。
2, 在本类中创建私有并静态的本类对象 。
3,对外提供公有并静态的方法,让其他程序获取这个对象。
//饿汉式
class Single{
private Single(){} //私有化构造函数。
private static Single s = new Single(); //创建私有并静态的本类对象。
public static Single getInstance(){ //定义公有并静态的方法,返回该对象。
return s;
}
}
//懒汉式:延迟加载方式。
class Single {
// 构造函数私有化
private Single() {
}
// 先不创建对象
private static Single s = null;
// 定义一个方法可以获取到该对象
public static Single getInstance() {
// 方法被调用时才判断s是否为null,是否创建对象,起延时作用
if (s == null)
// 双重判断,加synchronized同步解决线程的安全问题
synchronized (Single.class) {
if (s == null)
// 创建一个本类对象
s = new Single();
}
return s;
}
}