單例模式

單例模式的作用

可以保證在程序運(yùn)行過程,一個類只有一個實例,而且該實例易于供外界訪問
從而方便地控制了實例個數(shù),并節(jié)約系統(tǒng)資源

單例模式的使用場合

在整個應(yīng)用程序中,共享一份資源(這份資源只需要創(chuàng)建初始化1次)
<p>單例模式在ARC\MRC環(huán)境下的寫法有所不同,需要編寫2套不同的代碼 可以用宏判斷是否為ARC環(huán)境 </p>

<pre>#if __has_feature(objc_arc)
//ARC

else

//MRC

endif</pre>

<p>提供1個類方法讓外界訪問唯一的實例 </p>

<pre>+ (instancetype)sharedMusicTool {
? ? if (_instance == nil) { // 防止頻繁加鎖
? ? ? ? @synchronized(self) {
? ? ? ? ? ? if (_instance == nil) { // 防止創(chuàng)建多次
?? ? ? ? ? ? ? _instance = [[self alloc] init];
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? return _instance;
}
+(id)allocWithZone:(struct _NSZone *)zone {

static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    _instance = [super allocWithZone:zone];
});
return _instance;

}</pre>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 單例模式(SingletonPattern)一般被認(rèn)為是最簡單、最易理解的設(shè)計模式,也因為它的簡潔易懂,是項目中最...
    成熱了閱讀 4,530評論 4 34
  • 單例模式的作用 可以保證在程序運(yùn)行過程,一個類只有一個實例,而且該實例易于供外界訪問 從而方便地控制了實例個數(shù),并...
    JonesCxy閱讀 419評論 0 0
  • 消失的霓虹 文:recycler 天已黑,冬天的夜晚比其他季節(jié)來的更早一些。路上的街燈個別還亮著,剛下班的人還沒有...
    Recycler閱讀 569評論 0 0
  • 你的手機(jī)里有什么? 前些天放學(xué)回寢室,室友騎車在前面,剛好那個教學(xué)樓也下課了。我們知道學(xué)生下課都是三兩成群,成功躲...
    小烈吶閱讀 826評論 2 0
  • 從云臺山下山第一天,在床上躺到了十點,心中火焰熊熊燃燒著,有幸福,有痛苦。好吧,我終于體悟到來自靈魂的愛是全然的喜...
    文爭閱讀 288評論 0 1

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