單例模式的使用

單例的寫(xiě)法以及使用場(chǎng)景

//單例的寫(xiě)法

1.創(chuàng)建一個(gè)繼承自O(shè)Sobject的文件

LMSingletion

static? LMSingletion *singletion = nil;

+(instancetype)shareInstance{

static dispatch>once_t onceToken;

dispatch_once(&onceToken,^{

singletion = [[super allocWithZone:NULL]init];

})

return singletion;

}

+(id)allocWithZone:(struct _NSZone *)zone{

return [LMSingletion shareInstance];

}

-(id)copyWithZone:(struct _NSZone *)zone

{

return [LMSingleton shareInstance] ;

}

//使用場(chǎng)景:

單例模式只允許常見(jiàn)一個(gè)對(duì)象,因此節(jié)省內(nèi)存,加快對(duì)象訪(fǎng)問(wèn),因此對(duì)象需要被公用的場(chǎng)合適合使用,如多個(gè)模塊使用同一個(gè)數(shù)據(jù)源連接對(duì)象等

1.資源共享情況下沒(méi)避免由于資源操作時(shí)導(dǎo)致的性能或者損耗等如日志文件,應(yīng)用配置

2.控制資源的情況下, 方便資源之間的額互相通信,如線(xiàn)程池等

單例模式的原則和過(guò)程

1.單例模式:確保一個(gè)類(lèi)只有一個(gè)實(shí)例,自行實(shí)例化并向系統(tǒng)提供這個(gè)實(shí)例

2.單例模式分類(lèi):餓單例模式(類(lèi)加載實(shí)例化一個(gè)對(duì)象給自己引用),懶單例模式(調(diào)用取得實(shí)例的方法如shareInstance時(shí)才會(huì)實(shí)例化對(duì)象)

3.單例模式要素:1>私有構(gòu)造方法2>私有靜態(tài)引用指向自己實(shí)例3>以自己實(shí)例為返回值的公有靜態(tài)方法

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

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

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