單例設計模式
一、認識過的單例類有哪些:安全
NSUserDefaults、NSNotificationCenter、NSFileManager、UIApplication多線程
二、單例類spa
單例類某個類在代碼編寫時使用了單例設計模式線程
三、單例設計模式設計
見過的設計模式:MVC 代理 觀察者代理
設計模式:經驗豐富的人總結出的一套經驗、方法對象
特色:單例模式一般用於單例類中 單例類就是這個類只有一個實例(對象)資源
使用場景:it
一、在整個應用程序中,共享一份資源,應該讓這個類建立出來的對象永遠只有一個
二、某些類的操做比較消耗系統資源 此時應該讓這個類建立出來的對象永遠只有一個
單例類的構建
一:
靜態方法獲取實例,爲你的單例類聲明一個靜態的實例,而且初始化它的值爲nil
二:
在獲取實例的方法中,只有在靜態實例爲nil的時候,產生一個你的類的實例,這個實例一般被稱爲共享的實例
三:
分析重寫allocWithZone
重寫alloc
重寫allocWithZone
四:
多線程實現線程安全 添加@synchronized代碼塊
五:(optional)
重寫copy相關方法 copyWithZone、mutableCopyWithZone 返回實例
ARC下以上幾步就OK了
MRC下酌情考慮增長第六步
六:
release、retain、retainCount 和 autorelease,用於保證單例具備一個正確的狀態。