您的位置:首页 > 其它

单例模式

2015-12-22 21:40 363 查看
单例模式在Cocoa中非常常见。按照习惯,你可以通过一个以
shared
开头的类方法识别它。

单例往往用于业务层对象,就如同前面所说的
CALayoutManager
类一样。

单例往往会伴随着线程安全问题,可以在
+sharedSingleton
中添加一个
@synchronize
以达到线程安全的目的,但这样就会使用到同步对象,性能会产生问题。

建议通过GCD内置的dispatch_once方法、速度快,而且线程安全。

//

//  ZQKSingleton.h

//  FFFFFF

//

//  Created by laouhn on 15/12/22.

//  Copyright (c) 2015年 宇哥. All rights reserved.

//

#import <Foundation/Foundation.h>

@interface ZQKSingleton : NSObject

+ (ZQKSingleton *)sharedSingleton;

@end

//

//  ZQKSingleton.m

//  FFFFFF

//

//  Created by laouhn on 15/12/22.

//  Copyright (c) 2015年 宇哥. All rights reserved.

//

#import "ZQKSingleton.h"

@implementation ZQKSingleton

+ (ZQKSingleton *)sharedSingleton{

    static ZQKSingleton *zqk = nil;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        zqk = [ZQKSingleton new];

    });

    

    return zqk;

}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: