object-单例设计模式

1.什么是单例?

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

2.使用单例的目的

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

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

3.GCD的写法:

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

 1 static Single *single = nil
 2 
 3 + (id)defaultManager
 4 
 5 {     
 6     static dispatch_once_t onceToken;
 7 
 8     dispatch_once(&onceToken, ^{
 9 
10         single = [[Single alloc]init];
11 
12     });
13 
14     return single;
15 
16 }

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

1  static dispatch_once_t onceToken;
2 
3     dispatch_once(&onceToken, ^{
4 
5     });
 [Single defaultManager];//调用
原文地址:https://www.cnblogs.com/chenhongios/p/4633014.html