// 饿汉式
class Singleton01{
private Singleton01(){
}
private final static Singleton01 instance=new Singleton01();
public static Singleton01 getInstance(){
return instance;
}
}
// 饿汉式(静态方法)
class Singleton02{
private Singleton02(){
}
private static Singleton02 instance;
static {
instance =new Singleton02();
}
public static Singleton02 getInstance(){
return instance;
}
}
// 懒汉式(线程不安全)
class Singleton03{
private Singleton03(){
}
private static Singleton03 instance;
public static Singleton03 getInstance(){
if(instance==null){
instance= new Singleton03();
}
return instance;
}
}
// 懒汉式(线程安全,同步方法)
class Singleton04{
private Singleton04(){
}
private static Singleton04 instance;
public static synchronized Singleton04 getInstance(){
if(instance==null){
instance= new Singleton04();
}
return instance;
}
}
// 懒汉式(双重检查)
class Singleton05{
private Singleton05(){
}
private static volatile Singleton05 instance;
public static Singleton05 getInstance(){
if(instance==null){
synchronized(Singleton05.class){
if(instance==null){
instance= new Singleton05();
}
}
}
return instance;
}
}
// 静态内部类
class Singleton06{
private Singleton06(){
}
private static class SingletonInstance{
private static final Singleton06 INSTANCE=new Singleton06();
}
public static Singleton06 getInstance(){
return SingletonInstance.INSTANCE;
}
}
// 枚举
class Singleton07 {
private Singleton07(){
}
public static enum SingletonEnum {
SINGLETON;
private Singleton07 instance = null;
private SingletonEnum(){
instance = new Singleton07();
}
public Singleton07 getInstance(){
return instance;
}
}
}
单例模式七种
最新推荐文章于 2025-11-24 23:10:56 发布
6786

被折叠的 条评论
为什么被折叠?



