单例设计模式
来源:互联网 发布:武汉网络推广外包 编辑:程序博客网 时间:2024/06/05 05:24
1. 单例的写法
+ (Singleton *)shareSingleton {// 第一种写法
static Singleton *single;
if (!single) {
single = [Singleton new];
}
return single;
}
+ (id)sharedThemeManagerWithName:(NSString *)name {// 第二种写法(单线程,加锁)
static ThemeManager *themeManager;
@synchronized(self) {//@synchronized(self) 让这段代码处于atomic状态, 如果多个线程进入这段代码 这段代码只能是一个线程执行
if (themeManager == nil) {
themeManager = [[ThemeManager alloc] initWithName:name];
}
}
return themeManager;
}
+ (Singleton *)shareSingleton { // 第三种写法
static Singleton *single;
static dispatch_once_t oneToken;
dispatch_once(&oneToken, ^{
single = [Singleton new];
});
return single;
}
2. #warning csdn(单例的常见写法): main, default, standard, share
// 系统为了保证某些对象在工程里唯一, 使用单例创建对象, 比如上面4个
// 单例方法一般都是+号方法, 返回当前类型的对象, 方法一般以一些关键词开头, 比如main, default, standard, share, 然后加上类名, 基本上就是一个单例方法
- 设计模式--单例
- 单例设计模式
- 设计模式----单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 设计模式-单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 12C标量子查询中的BUG
- 简单封装的httpclient
- 二叉树遍历求差值绝对值最大值
- C++中虚函数与晚绑定的编译器实现
- MySQL 调优/优化的 100 个建议
- 单例设计模式
- asoundrc配置文件简单介绍
- KM算法板子2
- Hoeffding不等式的证明
- HDU 1032.The 3n + 1 problem【注意细节】【估计数据不强】【8月21】
- eclipse导出可执行的jar包
- spmio 内网源部署(二)
- 小孩报数-约瑟夫问题数组链表
- JAVA12个最重要的J2EE最佳实践