美文网首页
正确书写单例模式

正确书写单例模式

作者: lkuo | 来源:发表于2018-04-17 16:10 被阅读10次

正确的单例模式有四种实现方式:

  • 1.提前初始化(饿汉式)
public class Singleton {  
    private static Singleton instance = new Singleton();  
  
    private Singleton() {  
    }  
  
    public static Singleton getInstance() {  
        return instance;  
    }  
} 
  • 2.懒汉式(效率低)
public class Singleton {  
   public static synchronized Singleton getInstance() {  
        if (instance == null) {  
            instance = new Singleton();  
        }  
        return instance;  
    }  
}
  • 3.双重检查锁定(DCL) + volatile(变异懒汉式)
    懒汉式在在多线程的情况下会失效,所以需要改写,添加同步锁。
public class Singleton {  
    private static volatile Singleton instance;  
  
    private Singleton() {  
    }  
  
    public static Singleton getInstance() {  
        if (instance == null) {  
            synchronized (Singleton.class) {  
                if (instance == null) {  
                    instance = new Singleton();  
                }  
            }  
        }  
        return instance;  
    }  
} 

volatile保证变量修改的可见性。

  • 4.延迟初始化占位类模式
public class Singleton {  
    private static class InstanceHolder {  
        public static Singleton instance = new Singleton();  
    }  
  
    private Singleton() {  
    }  
  
    public static Singleton getInstance() {  
        return InstanceHolder.instance;  
    }  
}  

相关文章

  • 正确书写单例模式

    正确的单例模式有四种实现方式: 1.提前初始化(饿汉式) 2.懒汉式(效率低) 3.双重检查锁定(DCL) + v...

  • 设计模式详解——单例模式

    本篇文章介绍一种设计模式——单例模式。本文参考文章:《JAVA与模式》之单例模式,如何正确地写出单例模式。 一、单...

  • 单例模式 Singleton Pattern

    单例模式-菜鸟教程 iOS中的设计模式——单例(Singleton) iOS-单例模式写一次就够了 如何正确地写出...

  • 简单&易懂的线程安全单例模式

    1.前言 单例模式是23种设计模式中最常见的设计模式之一,正确编写单例模式是每个程序员都需要掌握的技术,单例模式也...

  • 你真的会写单例吗?

    你真的会写单例吗? 摘录来源 单例的正确姿势 Java单例模式可能是最简单也是最常用的设计模式,一个完美的单例需要...

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • 6种单例模式

    http://rannn.cc/2017/02/10/singleton.html 如何正确地写出单例模式 单例模...

  • Android中常见的内存泄漏汇总

    1.单例模式的错误写法 单例模式的正确写法: 2.非静态内部类创建静态实例造成的内存泄漏错误写法 正确写法:将该内...

  • 老司机来教你单例的正确姿势

    老司机来教你单例的正确姿势 Java单例模式可能是最简单也是最常用的设计模式,一个完美的单例需要做到哪些事呢? 单...

网友评论

      本文标题:正确书写单例模式

      本文链接:https://www.haomeiwen.com/subject/xmaukftx.html