单例设计模式
来源:互联网 发布:淘宝排名前十的店铺 编辑:程序博客网 时间:2024/06/05 22:36
单例模式:是指一个类如果设置为单例模式,那么这个类只能创建一个对象。而单例模式多数用于初始化时使用。单例的两大特性:1、可以保证对象的唯一性。2、可以保证线程的安全性。
下面创建一个单例模式的例子:
- +(instancetype)shareInstance
- {
- static SFDataBaseEngine *dbEngine = nil;
- static dispatch_once_t onceTocken;
- dispatch_once(&onceTocken, ^{
- dbEngine = [[self alloc]init];
- });
- return dbEngine;
- }
1.第一行:是创建一个静态的空对象;第二行:定义一个“令牌”;当第三行执行的时候,如果这个令牌为空,则执行block块里面的代码,如果该令牌不为空,则直接跳转到下面的return语句。从而保证该类只创建一个对象。
2.这里需要注意的一点是:第一行和第二行必须保证是一个静态变量或者是全局变量,否则就会创建多个对象,也就不能保证该类的对象唯一性。那么也就不能够称之为单例了。
3.因为单例都是静态方法,所以只能够用类来调用。
使用单例的情况:a.当需要存储一个全局的属性,并且这个属性是在一个类创建的时候调用的。
b.当一个类创建对象时需要占用很大的内存,这时就需要创建一个单例对象,因为否则的话每一次就创建一个新的对象,而这个对象又占用很大的内存。
4.iOS最经典的一个单例模式是UIApplication的单例模式。
static UIApplication * application = nil;
+(UIApplication*) shareApplication{
if(application == nil){
application= [[UIApplication alloc]init];
}
return application;
}
返回UIApplication的一个单例,单例是全局的;
UIApplication 代表的是应用程序做的事,每个程序只能有一个,系统使用的是单例模式,就是上面的[UIApplication sharedApplication]来得到一个实例。
在应用中,UIApplication *application = [UIApplication sharedApplication];就是实例化一个application对象。其中[UIApplication sharedApplication]就是实例化一个UIApplication单例对象。
- 设计模式--单例
- 单例设计模式
- 设计模式----单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 设计模式-单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- Failure [INSTALL_FAILED_OLDER_SDK] Android-L, Android Studio.
- 利用Git来搭建自己的博客平台
- Python脚本如何生成Windows可执行文件.exe
- POJ1422-Air Raid(最小路径覆盖)
- FTP乱码的解释
- 单例设计模式
- 击中击不中变换Matlab实现
- c++虚函数和虚继承
- Flex+Java+Blazeds
- OC中继承子类对象调用方法机制 子类对象访问父类中的实例变量
- phonegap 搭建ios 修改index.html地址
- C#抽象类、接口、虚函数和抽象函数
- Hibernate中的主键生成方法native与assigned
- python中使用 正则表达式