单例设计模式

  1. 饿汉式
public class Singleton{
    public static final Singleton instance = new Singleton();
    private Singleton(){}
    public static Singleton getInstance(){
        return instance;
    }
}
  1. 懒汉式之方法同步
public class Singleton{
    public static final Singleton instance = null;
    private Singleton(){}
    public static synchronized Singleton getInstance(){
        if(instance == null){
            instance = new Singleton();
        }
        return instance; 
    }
}
  1. 懒汉式之双重检查
public class Singleton{
    public static final Singleton instance = null;
    private Singleton(){}
    public static  Singleton getInstance(){
        if(instance==null){
            synchronized(Singleton.class){
                if(instance==null){
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}
  1. 静态内部类
public class Singleton {    
    private static class SingletonHolder {    
       private static final Singleton INSTANCE = new Singleton();    
    }    
    private Singleton (){}    
    public static final Singleton getInstance() {    
       return SingletonHolder.INSTANCE;    
    }    
} 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.懒汉式 线程不安全,当有多个线程并行调用getInstance()的时候,就会创建多个实例。也就是说在多线程下...
    少一点阅读 1,176评论 0 0
  • 前言 本文主要参考 那些年,我们一起写过的“单例模式”。 何为单例模式? 顾名思义,单例模式就是保证一个类仅有一个...
    tandeneck阅读 7,241评论 1 8
  • 1 场景问题# 1.1 读取配置文件的内容## 考虑这样一个应用,读取配置文件的内容。 很多应用项目,都有与应用相...
    七寸知架构阅读 11,780评论 12 68
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,771评论 19 139
  • 到南非,钓大鱼;到南非,奔梦去! 时光荏苒,生活节奏的步伐如似流水。青春无语,却散发出活力。 启锚的航船,确定了航...
    静守一方天空阅读 3,952评论 1 1