变更记录

序号 录入时间 录入人 备注
1 2015-03-02 Alfred Jiang -
2 2015-12-23 Alfred Jiang -

方案名称

设计模式 - 单例模式

关键字

设计模式 \ 单例 \ GCD \ dispatch_once \ 设计模式

需求场景

  1. 单例场景,如某个全局使用的管理类

参考链接

(无)

详细内容

  1. Swift 解决方案

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class var sharedInstance : SettingManager {
    struct Static {
    static var onceToken : dispatch_once_t = 0
    static var instance : SettingManager? = nil
    }
    dispatch_once(&Static.onceToken) {
    Static.instance = SettingManager()
    }
    return Static.instance!
    }
  2. Objective-C 解决方案

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    +(DBManager *)sharedManager
    {
    static DBManager *sharedManager;

    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
    sharedManager = [[DBManager alloc] init];
    });

    return sharedManager;
    }

效果图

(无)

备注