一、什么是单例模式?
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例,即一个类只有一个对象实例。
二、单例模式的优点
1.在内存中只有一个对象,节省内存空间;
2.避免频繁的创建销毁对象,可以提高性能;
3.避免对共享资源的多重占用。可以全局访问。
三、适用场景
1.需要频繁实例化然后销毁的对象,如登录User的信息;
2.创建对象时耗时过多或者耗资源过多,但又经常用到的对象;
3.有状态的工具类对象,如NSHelper;
4.频繁访问数据库或文件的对象,如使用SQLite;
5.以及其他所有要求只有一个对象的场景。
四、使用中注意事项
1.只能通过单例类提供的实例方法获取对象,不能通过alloc方法获取;
2.多线程使用单例对象,注意线程安全。
五、代码展示
+ (DataModelInstance *)shareInstance{
static DataModelInstance *instance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[DataModelInstance alloc] init];
});
return instance;
}