美文网首页
单例模式

单例模式

作者: 禅与发现的乐趣 | 来源:发表于2018-05-23 15:39 被阅读9次

饿汉式

直接进行创建

懒汉式

第一次使用时进行创建,使用synchronized修饰,避免对象不唯一

双重检查加锁

public class SingleInstance {
    private static volatile SingleInstance sInstance;

    private SingleInstance() {
    }

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

利用static机制,极客型的单例

public class SingleInstance {
        private SingleInstance() {
        }
        public static SingleInstance getInstance() {
            return SingleInstanceHolder.sInstance;
        }
        private static class SingleInstanceHolder {
            private static SingleInstance sInstance = new SingleInstance();
        }
    }

真的只有一个单例吗?

  • 使用反射,虽然构造器是非公开的,但是在反射面前就不起作用了
  • 使用多个类加载器加载单例类,也会导致创建多个实例并存的问题

相关文章

  • 【设计模式】单例模式

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

  • Android设计模式总结

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

  • 2018-04-08php实战设计模式

    一、单例模式 单例模式是最经典的设计模式之一,到底什么是单例?单例模式适用场景是什么?单例模式如何设计?php中单...

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

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

  • Telegram开源项目之单例模式

    NotificationCenter的单例模式 NotificationCenter的单例模式分析 这种单例模式是...

  • 单例模式Java篇

    单例设计模式- 饿汉式 单例设计模式 - 懒汉式 单例设计模式 - 懒汉式 - 多线程并发 单例设计模式 - 懒汉...

  • IOS单例模式的底层原理

    单例介绍 本文源码下载地址 1.什么是单例 说到单例首先要提到单例模式,因为单例模式是单例存在的目的 单例模式是一...

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • 单例模式

    单例模式1 单例模式2

  • java的单例模式

    饿汉单例模式 懒汉单例模式

网友评论

      本文标题:单例模式

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