iOS 單例設(shè)計模式

//聯(lián)系人:石虎?QQ:1224614774?昵稱:嗡嘛呢叭咪哄

一挎狸、概念

? ?單例模式(Singleton)也叫單態(tài)模式,是設(shè)計模式中最為簡單的一種模式

1.單例的作用

整個應(yīng)用或系統(tǒng)只能有該類的一個實例兢孝,即是在整個項目中缩幸,這個類的對象只能被初始化一次。單例類保證了應(yīng)用程序的生命周期中有且僅有一個該類的實例對象屯仗,而且易于外界訪問。

2.iOS單例模式應(yīng)用場景

單例模式泛應(yīng)用于某些需要全局共享的資源中搔谴,比如管理類魁袜,引擎類,也可以通過單例來實現(xiàn)傳值敦第。UIApplication峰弹、NSUserDefaults等都是iOS中的系統(tǒng)單例;

? 單例模式優(yōu)缺點(不僅限于iOS開發(fā))

使用簡單芜果、延時求值鞠呈、易于跨模塊

3.內(nèi)存占用與運行時間

? 對比使用單例模式和非單例模式的例子,在內(nèi)存占用與運行時間存在以下差距:

(1) 單例模式:單例模式每次獲取實例時都會先進行判斷右钾,看該實例是否存在——如果存在蚁吝,則返回;否則霹粥,則創(chuàng)建實例灭将。因此,會浪費一些判斷的時間后控。但是庙曙,如果一直沒有人使用這個實例的話,那么就不會創(chuàng)建實例浩淘,節(jié)約了內(nèi)存空間捌朴。

(2) 非單例模式:當(dāng)類加載的時候就會創(chuàng)建類的實例,不管你是否使用它张抄。然后當(dāng)每次調(diào)用的時候就不需要判斷該實例是否存在了砂蔽,節(jié)省了運行的時間。但是如果該實例沒有使用的話署惯,就浪費了內(nèi)存左驾。

4.線程的安全性

(1) 從線程的安全性上來講,不加同步的單例模式是不安全的。比如诡右,有兩個線程安岂,一個是線程A,另外一個是線程B帆吻,如果它們同時調(diào)用某一個方法域那,那就可能會導(dǎo)致并發(fā)問題。在這種情況下猜煮,會創(chuàng)建出兩個實例來次员,也就是單例的控制在并發(fā)情況下失效了。

(2) 非單例模式是線程安全的王带,因為程序保證只加載一次淑蔚,在加載的時候不會發(fā)生并發(fā)情況。

(3) 單例模式如果要實現(xiàn)線程安全辫秧,只需要加上synchronized即可束倍。但是這樣一來,就會減低整個程序的訪問速度盟戏,而且每次都要判斷绪妹,比較麻煩。

(4) 雙重檢查加鎖:為了解決(3)的繁瑣問題柿究,可以使用“雙重檢查加鎖”的方式來實現(xiàn)邮旷,這樣,就可以既實現(xiàn)線程安全蝇摸,又能使得程序性能不受太大的影響婶肩。

單例模式會阻止其它對象實例化其自己的對象的副本,從而確保所有對象都訪問唯一實例貌夕。

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

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

謝謝!!!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市们童,隨后出現(xiàn)的幾起案子畔况,更是在濱河造成了極大的恐慌,老刑警劉巖慧库,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跷跪,死亡現(xiàn)場離奇詭異,居然都是意外死亡齐板,警方通過查閱死者的電腦和手機吵瞻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門葛菇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人橡羞,你說我怎么就攤上這事熟呛。” “怎么了尉姨?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吗冤。 經(jīng)常有香客問我又厉,道長,這世上最難降的妖魔是什么椎瘟? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任覆致,我火速辦了婚禮,結(jié)果婚禮上肺蔚,老公的妹妹穿的比我還像新娘煌妈。我一直安慰自己,他們只是感情好宣羊,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布璧诵。 她就那樣靜靜地躺著,像睡著了一般仇冯。 火紅的嫁衣襯著肌膚如雪之宿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天苛坚,我揣著相機與錄音比被,去河邊找鬼。 笑死泼舱,一個胖子當(dāng)著我的面吹牛等缀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播娇昙,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尺迂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涯贞?” 一聲冷哼從身側(cè)響起枪狂,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宋渔,沒想到半個月后州疾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡皇拣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年严蓖,在試婚紗的時候發(fā)現(xiàn)自己被綠了薄嫡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡颗胡,死狀恐怖毫深,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情毒姨,我是刑警寧澤哑蔫,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站弧呐,受9級特大地震影響闸迷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜俘枫,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一腥沽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸠蚪,春花似錦今阳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至汹押,卻和暖如春矿筝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棚贾。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工窖维, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妙痹。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓铸史,卻偏偏與公主長得像,于是被迫代替她去往敵國和親怯伊。 傳聞我的和親對象是個殘疾皇子琳轿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

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