object-单例设计模式

时间:2023-03-08 22:38:29
object-单例设计模式

1.什么是单例?

      单例是一种数据共享的方法,其实就是等同于c语言中的全局变量。在整个程序生命周期内,该对象只有一份存在内存中,可以在多个对象之间共享数据
  • 单例其实就相当于一个类只能有一个实例。
  • 单例是最有用的设计模式之一。它是在代码间共享数据而不需要手动传递参数的一种方法。

2.使用单例的目的

a.封装一个共享的数据; b.提供一个固定的对象创建方法; c.提供一个实例访问接口

而且在某些时候,程序多次创建某个类的对象没有任何意义,还还可能造成系统性能下降(因为频繁地创建对象,回收对象带来的系统开销问题)

3.GCD的写法:

单例类可通过static全局变量来实现,该变量single用来保存已创建的Single对象,每次访问该实例时,都要先判断该static全局变量是否为nil,如果全局变量为nil,则初始化一个实例,如果该全局变量不为nil,则程序直接返回该全局变量指向的实例。

 static Single *single = nil

 + (id)defaultManager

 {
static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ single = [[Single alloc]init]; }); return single; }

在方法下首先只需敲出dis即可出现:

  static dispatch_once_t onceToken;

     dispatch_once(&onceToken, ^{

     });
 [Single defaultManager];//调用