单例

在iOS开发时,总是会遇到单例模式,单例即是一种模式,更是一种思想,单例模式是借鉴了数学中的单集合。就是一个集合中有且仅有一个元素。下面分享一下几个单例的写法和利弊。

单例_第1张图片
1

在这种写法中,使用了线程锁,@synthesize 关键字主要是为了防止不恰当的访问。关于synthesize
的理解,我是简单理解成了,使【 类  方法】和XXX.属性 等价的,当然这是不严谨的,需要在理解的同学可以自己研究下。 这种写法比较少用了现在。

单例_第2张图片
2

这个写法比较普遍,比较难懂的就是这个  allocWithZone 。其实这个地方的allocWithZone

函数他必须传一个nil或者null,是一个c的函数,涉及到nszone的理解,就不深究了,有兴趣的话可以研究下nszone,就一目了然了。这种写法还是很普遍的,但是用的人也不多了。

单例_第3张图片
3

这个写法是最常用的,也是最安全,首先线程安全,保证了全工程只是创建一次,再者代码量极少,容易理解。使用GCD神器。我一般都是使用这种。使用到的static也是很不错。

你可能感兴趣的:(单例)