單例模式的意思就是隻有一個實例。單例模式確保某一個類只有一個實例,並且自行實例化並向整個系統提供這個實例。這個類稱爲單例類。objective-c
1.單例模式的要點:ui
顯然單例模式的要點有三個;一是某個類只能有一個實例;二是它必須自行建立這個實例;三是它必須自行向整個系統提供這個實例。spa
2.單例模式的優勢:對象
staticUility *uility = nil;//第一步,寫一個靜態的對象,並置爲空it
+(Uility *)sharedUility{class
@synchronized(self){變量
if (uility == nil) { //第二步,,,判斷爲空,而後建立。object
uility = [[Uility alloc] init];方法
}static
}
return uility;
}
+ (id) allocWithZone:(NSZone *)zone //第三步:重寫allocWithZone方法,防止其餘人直接用alloc init方法建立一個新的實例
{
@synchronized (self) {
if (uility == nil) {
uility = [super allocWithZone:zone];
return uility;
}
}
returnnil;
}
- (id) copyWithZone:(NSZone *)zone //第四步 防止其餘人直接用copy方法建立一個新的實例
{
returnself;
}
- (id) retain
{
returnself;
}
- (unsigned) retainCount
{
returnUINT_MAX;
}
- (oneway void) release
{
}
- (id) autorelease
{
returnself;
}
- (id)init
{
@synchronized(self) {
[superinit];//每每放一些要初始化的變量.
return self;
}
}