单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,并且自行实例化并向整个系统提供这个实例。这个类称为单例类。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;
}
}