单例模式解析

单例模式是一种最常见的设计模式。
使用场景:确保某个类有且只有一个对象的场景。
实现单例模式的几个关键点:
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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 4,298评论 4 34
  • 在软件工程中,单例是一种用于实现单例的数学概念, 既将类的实例化仅限制成一个对象的一种设计模式.或者我们可以简单地...
    英贰与我阅读 426评论 0 3
  • 1.单例模式概述 (1)引言 单例模式是应用最广的模式之一,也是23种设计模式中最基本的一个。本文旨在总结通过Ja...
    曹丰斌阅读 3,005评论 6 47
  • 前言 本文主要参考 那些年,我们一起写过的“单例模式”。 何为单例模式? 顾名思义,单例模式就是保证一个类仅有一个...
    tandeneck阅读 2,539评论 1 8
  • 昨天给店员培训,先总结了下《销售洗脑》中让告诉我们的销售目的,遵循的原则,实施的步骤,使用的方法。发现讲了之...
    上帝爱非洲阅读 192评论 0 0