ARC下的单例模式
2015-10-16 20:23
148 查看
ARC下的单例的理解:单例是一种模式,在整个项目的生命周期中对于单例而言他只有一个该类的实例对象,并且改对象比较容易的被外界进行访问,另外他作为单例不会被其他对象进行影响而生成多余的对象。据两个实现单例的方法
1.在NSObject当然这里采用的是GCD的情况实现的单例,就如上所言,该单例可以进行在整个项目生命周期只生成一次。全局使用并且容易被外界访问的到
+(LHDBManager *)sharedMAnager{
static LHDBManager *manager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
manager = [[LHDBManager alloc]init];
});
return manager;
}
2.下面是使用线程锁的方式进行实现单例对象,什么是线程锁:线程锁就是在改对象是实例化时不被其他的对象进行影响只生成该类的一个对象(不知道理解错了没)
+(LHDBManager *)sharedManager
{
static LHDBManager *manager = nil;
@synchronized(self){
if (manager == nil) {
manager = [[DBManager alloc] init];
}
}
return manager;
}
1.在NSObject当然这里采用的是GCD的情况实现的单例,就如上所言,该单例可以进行在整个项目生命周期只生成一次。全局使用并且容易被外界访问的到
+(LHDBManager *)sharedMAnager{
static LHDBManager *manager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
manager = [[LHDBManager alloc]init];
});
return manager;
}
2.下面是使用线程锁的方式进行实现单例对象,什么是线程锁:线程锁就是在改对象是实例化时不被其他的对象进行影响只生成该类的一个对象(不知道理解错了没)
+(LHDBManager *)sharedManager
{
static LHDBManager *manager = nil;
@synchronized(self){
if (manager == nil) {
manager = [[DBManager alloc] init];
}
}
return manager;
}
相关文章推荐
- HBase的Like查询
- Android应用开发性能优化完全分析
- No3 导航控制器
- Intent中的四个重要属性——Action、Data、Category、Extras
- Scanner获取String类型的数据
- iOS之录音
- 九度oj-题目1103:二次方程计算器
- 浅谈Base64编码算法
- verilog 学习笔记
- Hash
- latex表格行号自动递增测试笔记
- 结构体最后的长度为0或1数组的作用(转载)
- Codeforces Round #326 (Div. 2)
- 【数据结构与算法分析】1.1 找出N个数字中第K大的数
- 小小菜之Cocos2d-x游戏开发旅程——项目实例:2048(1)
- Qt跨线程信号和槽的连接(默认方式是直连和队列的折中)
- Mvc--Html.ActionLink()用法
- 当析构函数遇上多进程
- java入门第七天 键盘控制小球移动和变态作业的答案(其实也没啥)
- LeetCode36——Valid Sudoku