ios 单例模式
单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。
1.单例模式的要点:
显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。
2.单例模式的优点:
1.实例控制:Singleton 会阻止其他对象实例化其自己的 Singleton 对象的副本,从而确保所有对象都访问唯一实例。
2.灵活性:因为类控制了实例化过程,所以类可以更加灵活修改实例化过程
#import<Foundation/Foundation.h>@interfaceCLPen:NSObject+(CLPen*)sharedCLPen;@end#import"CLPen.h"@implementationCLPen+(CLPen*)sharedCLPen{写法一(错误的)+(CLPen*)sharedCLPen{staticCLPen*pen=nil;if(pen==nil){pen=[[CLPenalloc]init];}returnpen;}写法二(错误的)+(CLPen*)sharedCLPen{staticCLPen*pen=nil;@synchronized(self){if(pen==nil){pen=[[CLPenalloc]init];}}returnpen;}一般选择第三种书写方式staticCLPen*pen=nil;//第一步:为单例对象实现一个静态实例,并初始化,然后设置成nil,//保证里面的方法只执行一次staticdispatch_once_tonceToken;//第二步:实例构造检查静态实例是否为nildispatch_once(&onceToken,^{pen=[[CLPenalloc]init];});returnpen;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。