美文网首页《设计模式专栏》
单例模式学习笔记 by:西瓜

单例模式学习笔记 by:西瓜

作者: 不够果断是种癌 | 来源:发表于2018-06-19 17:28 被阅读114次

该文参考与百度百科。仅用于自我学习。

什么叫单例模式?

百度上面是这样定义的:单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。

单例模式最初的定义出现于《设计模式》保证一个类仅有一个实例,并提供一个访问它的全局访问点。一个类有且仅有一个实例,并且自行实例化向整个系统提供。

单例模式要点?

1.某个类只能有一个实例。

2.必须自行创建这个实例。

3.必须自行像整个系统提供这个实例。

具体的实现要点?

1.单例模式的类只提供私有的构造函数。

2.类定义中含有一个该类的静态私有对象。

3.该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象。

优缺点?

1.单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。

缺点

1.虽然数量很少,但如果每次对象请求引用时都要检查是否存在类的实例,将仍然需要一些开销。可以通过使用静态初始化解决此问题。

2.使用单例对象(尤其在类库中定义的对象)时,不能使用new关键字实例化对象。

3.其他类可以删除对象实例,但这样会导致单例类中出现悬浮引用。

单例模式分为哪几种?

懒汉式:懒汉式是时间换空间省空间,也就是每次获取实例都会进行判断,看是否需要创建实例,浪费判断的时间。当然,如果一直没有人使用的话,那就不会创建实例,则节约内存空间。

饿汉式:饿汉式是的空间换时间省时间,当类装载的时候就会创建类实例,不管你用不用,先创建出来,然后每次调用的时候,就不需要再判断了,节省了运行时间。

单例的严谨性?

这里附上一个代码测试结果,什么样的单例写法才是正确的。传送门:《单例严谨性测试》

这个内容是<NSCopying>,详情请点击传送门

思考:1.单例为什么这么写?

           2.单例的原理?

           3.项目中大量使用单例好吗?

           4.单例的适用场景? 

           5.适用场景的依据?

           6.饿氏单例为什么很少使用?

相关文章

  • 单例模式学习笔记 by:西瓜

    该文参考与百度百科。仅用于自我学习。 什么叫单例模式? 百度上面是这样定义的:单例模式是一种常用的软件设计模式。在...

  • 【Java】设计模式 —— 深入浅出单例模式

    学习笔记 参考:深入浅出单实例SINGLETON设计模式单例模式【Java】设计模式:深入理解单例模式 场景:一般...

  • 初识设计模式之单例模式

    此文为笔者个人的学习笔记,在学习部分博客、书籍、资料后所总结,仅供参考。 对单例模式的认识单例模式是什么单例模式的...

  • Android设计模式

    目录 单例模式 适配器模式 Builder模式 简单工厂 单例模式 声明:我是全部抄这位大神的文章,作为学习笔记 ...

  • 设计模式整理(2) 单例模式

    学习《Android 源码设计模式解析与实践》系列笔记 什么是单例 单例模式是应用最广,也是最容易理解的模式之一。...

  • Android 中的 23 种设计模式

    系列笔记 通过学习 Android 的设计模式而记的笔记。(持续更新中...) 源码地址 Android 单例模式...

  • 设计模式系列教程之单例模式-原理介绍

    设计模式系列教程之单例模式-原理介绍 一:单例模式(Singleton)学习步骤 经典的单例模式原理: 本文出处:...

  • 23 Java设计模式系列-单例模式

    单例模式 单列模式是非常常见的设计模式之一,写个笔记,记录一下我的学习过程和心得。 首先了解一些单例模式的定义。 ...

  • iOS-单例模式

    swift的单例设计模式 OC的单例设计模式 新学习一种单例思想

  • 【设计模式】单例模式

    学习文章 iOS设计模式 - 单例 SwiftSingleton 原理图 说明 单例模式人人用过,严格的单例模式很...

网友评论

    本文标题:单例模式学习笔记 by:西瓜

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