1、宣告乙個單例物件的靜態例項,並初始化為nil;
2、建立乙個類的工廠方法,生成發乙個該類的例項,當且僅當這個類的例項為nil時覆蓋allocwithzone方法,確保使用者(程式設計師)在直接分配和初始化的時,不會產生另乙個物件。
3、實現
nscopying協議,覆蓋release,autorelease,retain,retain count方法,以此保證單例的狀態
4、多執行緒的環境中,注意使用synchronized關鍵字,確保靜態例項被正確的建立和初始化。
應用舉例
usercontext.m
@inte***ce usercontext :nsobject
@property(nonatomic,copy)
nsstring
*username;
@property(nonatomic,copy)
nsstring
*email;
+(id)shareusercontext;
@end
usercontext.m
static
usercontext *segtoninstance=nil;
@implementationusercontext
+(id)shareusercontext
}return
segtoninstance; }
+(id)allocwithzone:(nszone *)zone
return
segtoninstance; }
-(id)copywithzone:(nszone *)zone
iOS 單例設計模式
聯絡人 石虎暱稱 嗡嘛呢叭咪哄 一 概念 單例模式 singleton 也叫單態模式,是設計模式中最為簡單的一種模式 1.單例的作用 整個應用或系統只能有該類的乙個例項,即是在整個專案中,這個類的物件只能被初始化一次。單例類保證了應用程式的生命週期中有且僅有乙個該類的例項物件,而且易於外界訪問。2....
iOS設計模式 單例
備註 只能通過類的類方法才能建立單例類的例項,類名 alloc init 建立例項沒有用的。原理圖 1.單例模式人人用過,嚴格的單例模式很少有人用過 2.嚴格的單例模式指的是無法通過常規的 alloc init 方法來生成物件,派生出來的子類也不能產生出物件,而只能通過單例的方法獲取到物件原始碼 s...
IOS單例的設計模式
static surveyruntimedata sharedobj nil 第一步 靜態例項,並初始化置為nil。implementation surveyruntimedata surveyruntimedata sharedinstance 第二步 例項構造檢查靜態例項是否為nil。synch...