单例
来源:互联网 发布:南京cnc编程招聘 编辑:程序博客网 时间:2024/04/30 10:29
概念:意思是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。属于面向对象23种设计模式中常用的一种,主要用于做应用程序的资源共享控制。意味着:
2.调用的时候为确保实例化的唯一,直接利用类(static)方法来生成和访问对象。
3.可以在程序中任何地方访问它,因为只实例化唯一的一次,所以,并不用 alloc、init、autorelease初始化方法
使用场景或者说优点:在整个整个游戏中,我们只想让一个DataModel对象存在
在程序中,需要一系列的对象,他们每一个内部都包含有一组变量和功能,是静态的,而且整个程序都只需要拥有一个该类的对象。比如程序中需要去共享一系列的变量和功能,但是我并不想实例化多个对象。
例子:
.h:
@interface DataModel : NSObject <NSCoding> {
.....
}
.m:
static DataModel *_sharedContext = nil;
//实现一个静态实例,并初始化,然后设置成nil;
//实现一个实例构造方法 (通常命名为 sharedxxx) 检查上面声明的静态实例是否为nil,如果是,则新建并返回一个本类实例;
+(DataModel*)getModel
{
@synchronized(self) {//保证线程安全,在多个线程使用时不会创建多个对象
if (!_sharedContext) {
_sharedContext = [[self alloc] init];
}
}
return _sharedContext;
}
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 双向链表的建立
- MVC 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。
- Audyssey MultEQ、Audyssey Dynamic EQ、Audyssey Dynamic Volume使用心得
- COM与ATL(一):COM对象与接口
- Android monkey test 脚本的编写
- 单例
- JSP乱码问题
- usaco Calf Flac 解题报告
- 杭电Hd 1455
- 第五章 一个单向链表实例
- linux_NandFlash_driver_超详细分析 .
- expdp和impdp的用法
- 20121210枚举
- Eval绑定数据 多余部分用省略号……代替