比較官方的單例模式

2021-06-22 20:09:04 字數 699 閱讀 7833

static mygizmoclass *sharedgizmomanager = nil;  

+ (mygizmoclass*)sharedmanager  

return sharedgizmomanager;  

}  + (id)allocwithzone:(nszone *)zone  

- (id)copywithzone:(nszone *)zone  

- (id)retain  

- (nsuinteger)retaincount  

- (void)release  

- (id)autorelease  

他的方式是重寫release,retain,retaincount,autorelease,allocwithzone和copywithzone等方法。

1 重寫allocwithzone和copywithzone的目的是外部在多次呼叫alloc的時候,內部能夠確保物件只建立了一次。

2 重寫release、retain、autorelease、retaincount避免單件物件被外部釋放。

c 多執行緒安全

解決方法:在sharedmanager中加入同步**塊,**:

+ (mygizmoclass*)sharedmanager  

}  return sharedgizmomanager;  

}   分享到:

單例模式實現方式比較

單例模式實現方式 執行緒安全 延遲載入 反射安全 序列化安全 餓漢模式 懶漢模式 非空判斷 懶漢模式 方法加鎖 懶漢模式 雙重檢查鎖 靜態內部類 列舉 餓漢 author zhouxiaobing public class singleton implements serializable priv...

單例模式 單例模式

餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...

單例模式的八種寫法比較

單例模式是最常用到的設計模式之一,熟悉設計模式的朋友對單例模式都不會陌生。一般介紹單例模式的書籍都會提到 餓漢式 和 懶漢式 這兩種實現方式。但是除了這兩種方式,本文還會介紹其他幾種實現單例的方式,讓我們來一起看看吧。簡介 單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許乙個例項存在。...