單例設計模式

     我這人懶慣了,今天心血來潮來聊一聊單例設計模式,為什么會想到了它呢,因為今天面試被雷到了!其實我面過很多人,仿佛大家都知道怎么用,可為什么用,似乎都不很明白。這就是打算寫一點的原因。

      其實知識點比較少的,可是大家都不曾注意,似乎懂了,其實不然!就像大家都知道的一樣,單例設計模式只會在內(nèi)存中生成一次,程序不退出就不會被釋放??墒菫槭裁茨??那就用下面的代碼來解釋吧:
  • (AccountManager *)sharedManager
    {
    static AccountManager * sharedAccountManagerInstance = nil;
    static dispatch_once_t predicate;
    dispatch_once(&predicate, ^{
    sharedAccountManagerInstance = [[self alloc] init];
    });
    return sharedAccountManagerInstance;
    }

因為修飾當前對象用的是 static 關鍵字,所以此對象不會釋放,除非程序退出!因為 用到了 dispatch_once 所以不會再此創(chuàng)建!這才是根本原因!

至于什么時候用呢,那必須是頻繁使用的對象才會去用(就比如一款拍照社交的軟件,拍照部分就可以用這個設計模式創(chuàng)建對象,避免重復創(chuàng)建,造成不必要的浪費),不得不用的時候才回去用(就比如后臺下載)。

若有不對的地方,敬請指點和指指點點!要是覺得還可以的話,請點贊收藏!

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

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

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