几种常用的单例模式.md

  1. 懒汉模式
public class Singleton {
    private Singleton() {
    }

    private volatile static Singleton mInstance;// 第一层锁:保证变量可见性

    public static Singleton getInstance() {
        if (mInstance == null) {
            synchronized (Singleton.class) {
                if (mInstance == null) {
                    mInstance = new Singleton();
                }
            }
        }
        return mInstance;
    }

}
  1. 恶汉模式
class Singleton {
    private static final Singleton ourInstance = new Singleton();

    static Singleton getInstance() {
        return ourInstance;
    }

    private Singleton() {
    }
}
  1. 静态内部类模式
public class Singleton {

    // 私有构造函数
    private Singleton() {
    }
    
    public static Singleton getInstance() {

        return SingletonHolder.instance;
    }

    private static class SingletonHolder {
        private static final Singleton instance = new Singleton();
    }

}

其中用的最多也是最常用的是第3种,静态内部类单例。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 4,507评论 4 34
  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 3,864评论 0 14
  • 概念 确保某一个类只有一个实例,而且自行实例化,并向整个系统提供一个访问它的全局访问点,这个类称为单例类。 特性 ...
    野狗子嗷嗷嗷阅读 605评论 0 2
  • 亲爱的老爸: 你过得好不?今天是周日了,你有没有好好睡大觉啊? 今天约了抱抱,吃了个芝士年糕自助,好久没吃那么多芝...
    老爸我很想你阅读 150评论 0 1
  • 经归对css的学习之后,通过对之前使用纯HTML实现考试页面进行添加样式,进行美化试卷达到一下效果:   1.将每...
    heheheyuanqing阅读 626评论 0 0

友情链接更多精彩内容