定义
- 单例模式是创建型设计模式,其思想是私有化对象的构造方法,对外只提供一个可获取对象实例的方法
代码实践
public class SingletonTest {
private final static SingletonTest singletonTest = new SingletonTest();
private SingletonTest() {
}
public static SingletonTest getSingletonTest() {
return singletonTest;
}
}
public class SingletonTest {
private final static SingletonTest singletonTest;
private SingletonTest() {
}
public static SingletonTest getSingletonTest() {
if (null == singletonTest) {
singletonTest = new SingletonTest();
}
return singletonTest;
}
}
public class SingletonTest {
private volatile static SingletonTest singletonTest;
private SingletonTest() {
}
public static SingletonTest getSingletonTest() {
if (null == singletonTest) {
synchronized (SingletonTest.class) {
if (null == singletonTest) {
singletonTest = new SingletonTest();
}
}
}
return singletonTest;
}
}
- 静态内部类创建实例,利用类加载器的线程安全特性保证了单例对象的初始化线程安全。静态内部类只在使用的时间才会被加载一次,是延迟初始化加载。
public class SingletonTest {
private static class TestHolder {
static final SingletonTest singletonTest = new SingletonTest();
}
private SingletonTest() {
}
public static SingletonTest getInstance() {
return TestHolder.singletonTest;
}
}
更多单例模式详解请点击