单例设计模式运用较为普遍,广泛且较为简单的设计模式之一.他的设计原理是始终返回一个实例,即一个类始终只有一个实例.之前还学了代理设计模式.代理设计模式简单来说就是定义一个类创建多个对象(这是和前者的重要区别)...
//设计单例类的目的:限制这个类只能创建一个对象
/*
单例的应用场景:
1.单例对象可以存储一些共享的信息,每个对象都能访问和修改
2.如果一个类的创建非常的耗费性能,那么这个类最好设计为单例,只创建一次节约性能
*/
.H 文件
+ (AdressBook *)shareInstance;
.M 文件#import "AdressBook.h"
static AdressBook *instacne = nil;
@implementation AdressBook
//获取单例对象的类方法
+ (AdressBook *)shareInstance {
if (instacne == nil) {
instacne = [[AdressBook alloc] init];
}
return instacne;
}
//限制方法,限制这个类只能创建一个对象
+ (id)allocWithZone:(NSZone *)zone {
if (instacne == nil) {
instacne = [super allocWithZone:zone];
}
return instacne;
}
- (id)copyWithZone:(NSZone *)zone {
return self;
}