美文网首页
单例模式实例

单例模式实例

作者: eliteTyc | 来源:发表于2019-05-24 19:22 被阅读0次
  • 单例模式分为懒汉式,饿汉式
    • 懒汉式是实例对象为空,只有在需要使用实例的时候再去创建,饿汉式是在类加载的时候就直接创建了对象
  • 其中懒汉式因为是需要的时候再去创建实例,所以会存在线程安全的问题,因为多个线程同时访问的话会造成单例失效,所以记录一个,双检查的线程安全的懒汉式
public class SingletonCheck {

// 防止指令重排序
    private volatile static SingletonCheck instance;

//    1:构造器私有化
    private SingletonCheck(){}
//    2.对外提供获取单例的方法
    public static SingletonCheck getInstance(){
//        3.第一次检查,多个线程可以同时访问
        if (instance==null){
//            4.加锁,每次只有一个线程能访问
            synchronized (SingletonCheck.class){
//                5.再检查
                if (instance==null){
                    instance = new SingletonCheck();
                }
            }
        }
        return instance;
    }
}
  • 如果不使用synchronized关键字进行单例模式,可以使用类的加载机制,实现最高效的单例模式,也就是静态内部类的静态成员
public class SingletonCheck2 {
//    1.构造器私有化
    private SingletonCheck2(){}
//    2.写静态内部类
    private static class LayLoad{
        public static final SingletonCheck2 INSTACNE = new SingletonCheck2();
    }
//    3.对外提供方法调用
    public static SingletonCheck2 getInstance(){
        return  LayLoad.INSTACNE;
    }
}
  • 解析:类加载的规范:访问静态字段时,才会初始化静态字段所在的类
    在getInstance方法中调用了LayLoad.INSTACNE,此时才会对LayLoad进行类初始化,因为类初始化是线程安全的,只会执行一次,所以无论如何都只会保证new SingletonCheck2();执行一次,所以SingletonCheck2只会有一个实例

相关文章

  • Swift 和 Objective-C 单例模式详解

    单例模式分为严格单例模式和不严格单例模式。单例模式要求一个类有一个实例,有公开接口可以访问这个实例。严格单例模式,...

  • 单例对象

    iOS单例模式(Singleton)单例模式的意思就是:只有一个实例;单例模式确保每个类只有一个实例,而且自行实例...

  • 单例模式

    一、单例模式介绍 二、单例模式代码实例

  • python高级中的单例、异常、模块

    一、单例模式 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式...

  • 单例

    单例的定义 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。 注:单例模式只应在...

  • 【设计模式】之单例模式

    单例模式 什么是单例模式 单例模式属于管理实例的创造型类型模式。单例模式保证在你的应用种最多只有一个指定类的实例。...

  • PHP设计模式-单例模式

    单例模式(Singleton Pattern 单件模式或单元素模式) 单例模式确保某个类只有一个实例,而且自行实例...

  • IOS单例模式

    IOS单例模式(Singleton)单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例...

  • Thread-safe singleton

    单例模式的概念 单例模式就是确保只有一个实例,而且自行实例化并向整个系统传递这个实例,这个类就称作为单例类 单例模...

  • 设计模式:单例

    单例模式的基本介绍单例模式的实现源码中的单例模式记录 单例模式的基本介绍 定义:确保一个类只有一个实例,自行实例化...

网友评论

      本文标题:单例模式实例

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