博客> 单例模式(解析)
单例模式(解析)
2017-09-21 21:12 评论:0 阅读:210 飞翔信念
单例模式(解析)
`#import "CYManager.h"`

`static CYManager * theManager=nil;`

`@implementation CYManager`

//1.简单实现(若项目中使用了多线程则有可能多个线程同时调用,不能保证都调取的这个单例)

`+(CYManager *)sharedInstanceOne
{
    if (theManager==nil) {
        theManager=[[CYManager alloc]init];
    }
    return theManager;
}`

//2.防止多线程状态下创建新实例

`+(CYManager *)sharedInstanceTwo
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        theManager=[[CYManager alloc]init];
    });
    return theManager;
}`

/*****/ //3.复杂实现,绝对安全(有时候我们在创建的时候未免会用到alloc,copy,new等创建,这样也会创建一个新的实例,为了保证使用这些方法创建实例的时候创建的是同一个实例,会采用重写alloc,cop,new方法只创建一次单例),一般不会用重写这些方法。

`@end`
收藏
0
sina weixin mail 回到顶部