iOS 單例

單例,即是在整個(gè)項(xiàng)目中,這個(gè)類的對(duì)象只能被初始化一次。
比如系統(tǒng)的通知中心:

[NSNotificationCenter defaultCenter]

那么,單例有什么好處吶?

You obtain the global instance from a singleton class through a factory method. The class lazily creates its sole instance the first time it is requested and thereafter ensures that no other instance can be created. A singleton class also prevents callers from copying, retaining, or releasing the instance. You may create your own singleton classes if you find the need for them. For example, if you have a class that provides sounds to other objects in an application, you might make it a singleton.

簡(jiǎn)單來說:全局可用,線程安全!
打個(gè)比方說:我們有一款播放視頻的APP,但是我不能為每一個(gè)視頻文件都創(chuàng)建一個(gè)播放器吧?我們只需要?jiǎng)?chuàng)建一個(gè)播放器,去播放我們需要看的視頻,而這個(gè)播放器就可以稱為“單例播放器”,全局可用,保證其唯一性。我們播放其中一個(gè)視頻的時(shí)候,不能同時(shí)播放其他視頻,線程安全。
那么我們創(chuàng)建單例怎么去創(chuàng)建吶,下面有兩種方法:
1:

static NFDbManager *DefaultManager = nil;

+ (NFDbManager *)defaultManager {
    
    if (!DefaultManager) DefaultManager = [[self allocWithZone:NULL] init];
    
    return DefaultManager;
}

2:

+ (NFDbManager *)sharedManager
{
    static NFDbManager *sharedAccountManagerInstance = nil;
    static dispatch_once_t predicate;
    dispatch_once(&predicate, ^{
        sharedAccountManagerInstance = [[self alloc] init];
    });
    return sharedAccountManagerInstance;
}

開發(fā)過程中會(huì)遇到很多這樣全局唯一的,那么我們就可以創(chuàng)建一個(gè)單例對(duì)象。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,693評(píng)論 19 139
  • 一、單例是什么?(apl??ke??(?)n 申請(qǐng)) 在 Foundation 和 Application Kit...
    甘哲157閱讀 6,282評(píng)論 6 22
  • 在開發(fā)中經(jīng)常會(huì)用到單例設(shè)計(jì)模式,目的就是為了在程序的整個(gè)生命周期內(nèi),只會(huì)創(chuàng)建一個(gè)類的實(shí)例對(duì)象,而且只要程序不被殺死...
    零度_不結(jié)冰閱讀 482評(píng)論 0 0
  • 原文地址 http://www.cocoachina.com/ios/20160907/17497.html 在開...
    Amok校長(zhǎng)閱讀 642評(píng)論 0 0
  • 陽春三月,草長(zhǎng)鶯飛;陽春三月,柳綠花紅。這三月指的是農(nóng)歷三月。農(nóng)歷三月,是春意正濃時(shí),是姹紫嫣紅芳菲天吧! 三...
    悄然而醉閱讀 910評(píng)論 0 0

友情鏈接更多精彩內(nèi)容