美文网首页
单例的一些实现方式

单例的一些实现方式

作者: pphdsny | 来源:发表于2018-03-01 19:25 被阅读144次
  • 懒汉式 - 用到才去创建实例,得注意多线程同时创建

    双重校验

    public class SingletonClass{
      private static volatile final SingletonClass sInstance;
      private SingletonClass(){}
      
      public static SingletonClass getInstance(){
        if(sInstance == null){
          synchronized(SingletonClass.class){
          if(sInstance == null){
                sInstance = new SingletonClass();
              }
          }
        }
        return sInstance;
      }
    }
    
  • 饿汉式 - 事先创建好对象

    因为单例的实例被声明成 static 和 final 变量了,在第一次加载类到内存中时就会初始化,所以创建实例本身是线程安全的。

  • 私有静态内部类实现(推荐)

    内部类分为对象级别和类级别,类级内部类指的是,有static修饰的成员变量的内部类。如果没有static修饰的成员变量的内部类被称为对象级内部类。

    类级内部类相当于其外部类的static成员,它的对象与外部类对象间不存在依赖关系,相互独立,因此可直接创建。而对象级内部类的实例,是必须绑定在外部对象实例上的。类级内部类只有在第一次被使用的时候才被会装载。

    public class SingletonClass{
      private static class SingletonHolder{
        public static final SingletonClass sInstance = new SingletonClass();
      }
      private SingletonClass(){}
      public static SingletonClass getInstance(){
        return SingletonHolder.sInstance;
      }
    }
    

相关文章

  • iOS 单例模式 - 单例对象销毁【@synchronized】

    单例对象的创建方式 单例.h 文件的实现 单例.m 文件的实现 单例对象的销毁【@synchronized创建方式...

  • iOS 单例模式 - 单例对象销毁【GCD】

    单例对象的创建方式 单例.h 文件的实现 单例的.m 文件的实现 单例对象的销毁【GCD创建的方式】 使用单例对象...

  • 单例模式的常用实现方式

    单例模式属于最常用的设计模式,Java中有很多实现单例模式的方式,各有其优缺点 实现方式对比 单例实现方式线程安全...

  • 单例模式(Singleton)- 通俗易懂的设计模式解析

    单例模式的实现方式单例模式的实现方式有多种,根据需求场景,可分为2大类、6种实现方式。具体如下: a. 初始化单例...

  • Python经典面试题21道

    1、Python如何实现单例模式? Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模...

  • Python最经典面试题21道,必看!

    1、Python如何实现单例模式? Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模...

  • Python 经典面试题

    1、Python如何实现单例模式? Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模...

  • Python 经典面试题

    1、Python如何实现单例模式? Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模...

  • 设计模式--单例模式

    单例模式概述 单例模式实现方式 为什么要使用单例模式 单例模式实现方式 饿汉式 类加载后就会将对象加载到内存中,保...

  • 完美的单例

    一、常见的单例实现方式 方式一(静态常量) 方式二(内部类) 方式三(懒加载) 二、常见单例实现方式的问题 方式一...

网友评论

      本文标题:单例的一些实现方式

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