ios - 單例模式

一. 單例模式簡介

單例模式的作用

可以保證在程序運行過程,一個類只有一個實例,而且該實例易于供外界訪問

從而方便地控制了實例個數(shù),并節(jié)約系統(tǒng)資源

單例模式的使用場合

在整個應(yīng)用程序中,共享一份資源(這份資源只需要創(chuàng)建初始化1次),一般用于工具類。例如:登陸控制器,網(wǎng)絡(luò)數(shù)據(jù)請求,音樂播放器等一個工程需要使用多次的控制器或方法。

單例模式的優(yōu)缺點

優(yōu)點:

單例模式可以保證系統(tǒng)中一個類只有一個實例而且該實例易于外界訪問,從而方便對實例個數(shù)的控制并節(jié)約系統(tǒng)資源。

如果希望在系統(tǒng)中某個類的對象只能存在一個,單例模式是最好的解決方案。

單例模式因為類控制了實例化過程,所以類可以更加靈活修改實例化過程。

缺點:

單例對象一旦建立,對象指針是保存在靜態(tài)區(qū)的,單例對象在堆中分配的內(nèi)存空間,會在應(yīng)用程序終止后才會被釋放。

單例類無法繼承,因此很難進行類的擴展。

單例不適用于變化的對象,如果同一類型的對象總是要在不同的用例場景發(fā)生變化,單例就會引起數(shù)據(jù)的錯誤,不能保存彼此的狀態(tài)。

注意:我們在使用單例類之前,一定要考慮好單例類是否適合和類以后的擴展性,避免盲目濫用單例

二. 單例在ARC中的實現(xiàn)

ARC中單例實現(xiàn)步驟

1 在類的內(nèi)部提供一個static修飾的全局變量

2 提供一個類方法,方便外界訪問

3 重寫+allocWithZone方法,保證永遠都只為單例對象分配一次內(nèi)存空間

4 嚴謹起見,重寫-copyWithZone方法和-MutableCopyWithZone方法


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 原鏈接:http://www.lxweimin.com/p/4867dc92337e原作者:僅供我個人收藏學習,原博...
    油菜花花花花閱讀 341評論 0 0
  • 一. 單例模式簡介 單例模式的作用可以保證在程序運行過程,一個類只有一個實例,而且該實例易于供外界訪問從而方便地控...
    xx_cc閱讀 50,271評論 15 146
  • 單例模式作用 可以保證在程序運行過程中,一個類只有一個實例,而且該實例易于供外界使用 從而方便地控制了實例個數(shù),并...
    珍此良辰閱讀 1,357評論 3 8
  • 簡介: 單例模式是一種常用的軟件設(shè)計模式。在它的核心結(jié)構(gòu)中只包含一個被稱為單例類的特殊類。通過單例模式可以保證系統(tǒng)...
    RunnerFL閱讀 647評論 0 0
  • 推薦指數(shù):四顆星 主要面向人群:各年齡段書蟲,尤其安利刷題學生黨 推薦游覽時長:1-1.5小時 地址:河南省濮陽市...
    芒果Seven閱讀 1,130評論 0 4