美文网首页
单例模式解析

单例模式解析

作者: 读书的小二郎 | 来源:发表于2017-08-16 22:55 被阅读0次

    单例模式是一种最常见的设计模式。
    使用场景:确保某个类有且只有一个对象的场景。
    实现单例模式的几个关键点:
    1、构造函数不对外开放,私有构造方法。
    2、通过类方法或枚举返回单例对象;
    3、确保单例对象有且只有一个,尤其在多线程的环境下;
    4、确保单例对象在反序列化时不会重新构建对象;

    由于单例模式很常见,网上都能找到各种写法,本文只总结,不在给出具体的代码,后面又连接供参考。

    Java单例模式的几种写法:
    1、饿汉式
    2、饿汉式(静态代码块)
    3、懒汉式(线程不安全)
    4、懒汉式 (线程安全)
    5、双重校验锁 (懒汉式 线程安全变种)
    6、静态内部类
    7、枚举
    8、使用容器实现单例

    注意:1、饿汉式和静态内部类的实现方式区别和使用场景。
    2、如何避免反序列化 readResolve();

    Objective-C单例模式的几种写法:
    1、不使用GCD
    2、使用GCD

    注意:1、线程安全
    2、避免alloc 和 copy
    当我们调用alloc函数时我们进一步会调用allocWithZone方法
    3、MRC 下的引用计数和子类化 NSAllocateObject([self class],0,NULL);

    参考:
    Java实现代码
    1、http://www.cnblogs.com/itliuchao/p/4497778.html
    2、http://blog.csdn.net/u012507894/article/details/50541108
    OC实现代码
    3、http://www.jianshu.com/p/6b012ebc10fe
    4、http://www.jianshu.com/p/4f49c5c81021

    相关文章

      网友评论

          本文标题:单例模式解析

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