單例模式

1 基本概念 :在程序運(yùn)行過(guò)程中,一個(gè)類(lèi)只有一個(gè)實(shí)例。

2 使用場(chǎng)合 :在整個(gè)應(yīng)用程序中,共享一份資源(這份資源只需要?jiǎng)?chuàng)建初始化一次)。

3 實(shí)現(xiàn)步驟

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

2)提供一個(gè)類(lèi)方法方便外界訪問(wèn)。(類(lèi)方法的命名:share + 類(lèi)名 | default + 類(lèi)名)

3)重寫(xiě)+allocWithZone方法。(在這里保證為對(duì)象,只分配一次內(nèi)存空間,使用一次性執(zhí)行代碼)

4)重寫(xiě)-copyWithZone 和 -mutableCopyWithZone (在這兩個(gè)方法中,直接返回實(shí)例對(duì)象,因?yàn)椋@兩個(gè)方法是對(duì)象方法,被調(diào)用,說(shuō)明,對(duì)象已經(jīng)被創(chuàng)建了,所以直接返回實(shí)例對(duì)象就可以了)。

上面的四步,是在ARC下創(chuàng)建一個(gè)單例對(duì)象,如果是在MRC下,還要補(bǔ)充幾個(gè)方法的實(shí)現(xiàn)。

5)重寫(xiě) -release方法(在這個(gè)方法中,什么也不做)。

6)重寫(xiě) -retain方法(在這個(gè)方法中直接返回實(shí)例對(duì)象)

7)重寫(xiě) -retainCount方法(在這個(gè)方法中,返回一個(gè)最大值)

相關(guān)代碼如下:


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

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

  • 單例模式的作用 可以保證在程序運(yùn)行過(guò)程,一個(gè)類(lèi)只有一個(gè)實(shí)例,而且該實(shí)例易于供外界訪問(wèn) 從而方便地控制了實(shí)例個(gè)數(shù),并...
    JonesCxy閱讀 385評(píng)論 0 0
  • 簡(jiǎn)介: 單例模式是一種常用的軟件設(shè)計(jì)模式。在它的核心結(jié)構(gòu)中只包含一個(gè)被稱(chēng)為單例類(lèi)的特殊類(lèi)。通過(guò)單例模式可以保證系統(tǒng)...
    RunnerFL閱讀 649評(píng)論 0 0
  • 愛(ài)上一個(gè)人并不難,難的是看清楚了一個(gè)人卻仍然愛(ài)著他。兩個(gè)人相處久了,難免會(huì)抱怨一句“你變了”、“你也變了”……你想...
    aya1212閱讀 441評(píng)論 1 4
  • 今天看到朋友圈小伙伴說(shuō),加班來(lái)的太快就像龍卷風(fēng),估計(jì)她看到加班時(shí)候的心情是這樣的。 我也想談下關(guān)于加班的那點(diǎn)事兒。...
    王二公子閱讀 450評(píng)論 1 2
  • 我對(duì)土申說(shuō),我即將去當(dāng)一棵有腳的雜木樹(shù)。 “當(dāng)?怕不是一份職業(yè)?” “可不是說(shuō)老酒館還有一份當(dāng)貓的職業(yè)” “長(zhǎng)腳?...
    喵喵咪醬汁閱讀 131評(píng)論 0 1