//饿汗模式
class Singleton1{
private static Singleton1 instance = new Singleton1();
private Singleton1(){}
public static Singleton1 getInstance(){
return instance;
}
}
//懒汉模式
class Singleton2{
private static Singleton2 instance = null;
private Singleton2(){}
public static synchronized Singleton2 getInstance(){
if(instance == null){
instance = new Singleton2();
}
return instance;
}
}
//双重检查加锁模式
class Singleton3{
private static volatile Singleton3 instance = null;
private Singleton3(){}
public static Singleton3 getInstance(){
if(instance == null){
synchronized(Singleton3.class){
if(instance == null)
return instance;
}
}
}
}
//通过内部类创建实例
class Singleton4{
private Singleton4(){}
private static Inner{
public static instance = new Singleton4();
}
public static Singleton4 getInstance(){
return inner.instance;
}
}
//枚举创建实例模式此模式根据枚举自身特点:自己完成实例化并由jvm提供同步处理
enum Singleton5{
instance;
Singleton5(){
}
public void operator(){
}
}
单例模式
最新推荐文章于 2023-07-26 15:46:48 发布