玩转iOS开发:《iOS设计模式 — 单例模式》
作者感言
有一段時間沒有發(fā)博客了, 剛好現(xiàn)在忙完項目的需求, 現(xiàn)在可以閑下來寫寫博客, 順便自己給自己復(fù)習(xí)鞏固一下知識, 不過我在這里又要吐槽一句, 項目中遇到了一個單例的問題, 讓我感到非常的蛋疼, 寫這個單例的人只是單純了為了寫單例而寫單例, 沒有想到會發(fā)生什么, 現(xiàn)在讓我們一起來看看什么叫單例吧.
最后: 如果你有更好的建議或者對這篇文章有不滿的地方, 請聯(lián)系我, 我會參考你們的意見再進行修改, 聯(lián)系我時, 請備注單例模式 如果覺得好的話, 希望大家也可以打賞一下~嘻嘻~祝大家學(xué)習(xí)愉快~謝謝~
Cain(羅家輝)
zhebushimengfei@qq.com: 聯(lián)系方式
350116542: 騰訊QQ
簡介
這是一張單例的UML圖, 非常簡單明了的講解單例類到底是怎么回事, 通常單例是用來作為管理中心, 或者是通知中心, 比如在iOS當中的NSNotificationCenter, [[UIApplication sharedApplication] statusBarStyle], NSUserDefaults, [NSFileManager defaultManager]等等都是單例, 單例類有幾個特征.
- 系統(tǒng)當中只有一個實例
- 易于外界訪問
- 防止子類繼承
- 共享信息
準備工作
首先, 我們先來建一個WorkSpace, 這樣子方便我們以后多添加工程, 因為單例模式只是我們的開始.
添加單例工程
創(chuàng)建完WorkingSpace之后, 我們就來添加SingletonPattern(單例)的工程
創(chuàng)建單例類
現(xiàn)在我們來創(chuàng)建一個叫UserInfoManager單例類
聲明一個類方法用于外界訪問
接下來我們?nèi)崿F(xiàn)這個類方法就好了
看起來, 我們好像搞定了整個單例模式了, 下面讓我們來試試效果.
打印出來的效果好像是只有一個, 但實際上并不是的, 我們再來看看
發(fā)現(xiàn)這個類還是可以初始化的, 并且是另外開辟了內(nèi)存空間來存儲的, 這就很尷尬了, 說好的只有一個實例呢???
我在這里說一句, 施主莫怕, 等貧僧跳大, 繼續(xù)回到單例類當中, 添加幾個判斷就好了
口說無憑, 我們來看看運行效果
這下子, 可以說明是只有一個實例了吧, 下面再來看看子類是否能繼承
好了, 現(xiàn)在單例所需的
- 易于外界訪問
- 系統(tǒng)當中只有一個實例
- 防止子類繼承
我們都搞定, 醬紫我們就完成了一個單例類的創(chuàng)建啦
工程地址
項目地址: github.com/CainRun/Des…
總結(jié)
以上是生活随笔為你收集整理的玩转iOS开发:《iOS设计模式 — 单例模式》的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支持向量机libsvm实战入门
- 下一篇: android L 关机流程图