一,单例模式
-
单例模式的作用:
对于某个类型,有时候该对象只需要一个,并且不想被任意创建多个,此时单例模式就起作用了,他能保证当前类对象有且只存在一个。
-
单例模式的原理:
1)当前类对象作为私有属性,并且为静态的。
2)为了使类对象不能随意在外部程序被创建,此时需要使其构造方法设为私有。
3)提供一个共有的静态方法用于获取作为属性的当前对象。
-
单例模式的最常见加载模式:
1)饿汉模式(立即加载模式): 对象在类加载的时候就创建了一个对象作为属性。
2)懒汉模式(延迟加载模式): 对象在需要使用调用方法时创建一个对象作为属性。
二,饿汉模式(立即加载模式)
上代码!!!
public class SingleTon {
//单例模式--饿汉式
private static volatile SingleTon singleTon = new SingleTon();
private SingleTon(){
}
public static synchronized SingleTon getSingleTon(){
return singleTon;
}
}
测试:
public class Main{
public static void main(String[] args) {
SingleTon singleTon = SingleTon.getSingleTon();
}
}
三,懒汉模式(延迟加载模式)
上代码!!!
public class SingleTon {
//单例模式--懒汉式
private static volatile SingleTon singleTon ;
private SingleTon(){
}
public static SingleTon getSingleTon(){
if(singleTon==null){
synchronized (SingleTon.class){
if(singleTon==null){
singleTon = new SingleTon();
}
}
}
return singleTon;
}
}
测试:
public class Main{
public static void main(String[] args) {
SingleTon singleTon = SingleTon.getSingleTon();
}
}