關于iOS開發單例使用問題
原文鏈接:Avoiding Singleton Abuse
導語
單例(Singletons),是Cocoa的核心模式之一。在iOS上,單例十分常見,比如:UIApplication,NSFileManager等等。雖然它們用起來十分方便,但實際上它們有許多問題需要注意。所以在你下次自動補全dispatch_once代碼片段的時候,想一下這樣會導致什么后果。
什么是單例
在《設計模式》一書中給出了單例的定義:
單例模式:保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。
單例模式提供了一個訪問點,供客戶類為共享資源生成唯一實例,并通過它來對共享資源進行訪問,這一模式提供了靈活性。
在objective-c中,可以使用以下代碼創建一個單例:
+(instancetype)sharedInstance
{
static dispatch_once_t once;
static id sharedInstance;
dispatch_once(&once, ^{
sharedInstance = [[self alloc]init];
});
return sharedInstance;
}
當類只能有一個實例,而且必須從一個訪問點對其進行訪問時使用單例就顯得十分方便,因為使用單例保證了訪問點的唯一、一致且為人熟知。
單例中的問題
全局狀態
首先我們都應該達成一個共識“全局可變狀態”是危險的,因為這樣會讓程序變得難以理解和調試,就削減狀態性代碼上,面向對象編程應該向函數式編程學習。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
關于iOS開發單例使用問題下載
相關電子資料下載
- iOS17.1可能明天發布,iOS17.1主要修復哪些問題? 377
- 華為全新鴻蒙蓄勢待發 僅支持鴻蒙內核和鴻蒙系統應用 719
- 蘋果手機系統iOS 17遭用戶質疑 731
- iPhone12輻射超標?蘋果推送iOS 17.1解決此事 750
- 傳華為囤積零部件 目標明年智能手機出貨7000萬部;消息稱 MiOS 僅限國內,小米 28208
- 蘋果推送iOS17.0.3,解決iPhone15Pro系列存在機身過熱 216
- Testin云測兼容和真機服務平臺中上線iPhone 15系列手機 208
- 利爾達推出搭載HooRiiOS的Matter模組 145
- 運放參數解析:輸入偏置電流(Ibias)和失調電流(Ios) 128
- 昆侖太科發布支持國產飛騰騰銳D2000芯片的開源BIOS固件版本 448