ios - 單例模式

一. 單例模式簡(jiǎn)介

單例模式的作用

可以保證在程序運(yùn)行過(guò)程,一個(gè)類只有一個(gè)實(shí)例,而且該實(shí)例易于供外界訪問(wèn)

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

單例模式的使用場(chǎng)合

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

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

優(yōu)點(diǎn):

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

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

單例模式因?yàn)轭惪刂屏藢?shí)例化過(guò)程,所以類可以更加靈活修改實(shí)例化過(guò)程。

缺點(diǎn):

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

單例類無(wú)法繼承,因此很難進(jìn)行類的擴(kuò)展。

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

注意:我們?cè)谑褂脝卫愔?,一定要考慮好單例類是否適合和類以后的擴(kuò)展性,避免盲目濫用單例

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

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

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

2 提供一個(gè)類方法,方便外界訪問(wèn)

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

4 嚴(yán)謹(jǐn)起見(jiàn),重寫-copyWithZone方法和-MutableCopyWithZone方法


最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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

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