iOS之深入解析单例的实现和销毁的底层原理

Posted Forever_wj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS之深入解析单例的实现和销毁的底层原理相关的知识,希望对你有一定的参考价值。

一、单例的概念

  • 单例设计模式确保对于一个给定的类只有一个实例存在,这个实例有一个全局唯一的访问点。它通常采用懒加载的方式在第一次用到实例的时候再去创建它。
  • 单例可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问,从而方便地控制了实例个数,并节约系统资源。
  • 单例在整个应用程序中,共享一个资源(这份资源只需要创建初始化一次),应该让这个类创建出来的对象永远只有一个。
  • 单例的设计思路:
    • 永远只分配一块内存来创建对象;
    • 提供一个类方法,返回内部唯一的一个变量;
    • 最好保证init方法也只初始化一次。
  • 单例的主要优点:
    • 单例可以保证系统中该类有且仅有一个实例,确保所有对象都访问这个唯一实例;
    • 由于类控制了实例化过程,所以类可以灵活更改实例化过程;
    • 基于单例的唯一实例性,对于项目中的个别场景的传值、存储状态等业务更加方便;
    • 可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。
  • 单例的主要缺点:
    • 由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。单例不能被继承,不能有子类;
    • 不易被重写或扩展(可以使用分

以上是关于iOS之深入解析单例的实现和销毁的底层原理的主要内容,如果未能解决你的问题,请参考以下文章

单例的销毁

单例的销毁

iOS之深入解析分类Category的底层原理

iOS之深入解析KVO的底层原理

iOS之深入解析KVC的底层原理和自定义KVC的实现

iOS之深入解析Runloop的底层原理