iOS开发之单例模式
2015-11-26 13:04
363 查看
单例模式是一种常用的软件设计模式,在应用这个模式时,单例对象的类必须保证只有一个实例存在。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
iOS中最常见的单例就是UIApplication,UIWindow.
单例的实现步骤:
1> 重写allocWithZone方法;
allocWithZone方法是对象分配内存空间时,最终会调用的方法,重写该方法,保证只会分配一个内存空间。
2> 建立sharedXXX类方法,便于其他类访问;
方法实现代码如下:
?
dispatch_once 是线程安全的,能够做到在多线程的环境下Block中的代码只会被执行一次;
单例模式
优点:
可以阻止其他对象实例化单例对象的副本,从而确保所有对象都访问唯一实例;
缺点:
单例对象一旦建立,对象指针是保存在静态区的,单例对象在堆中分配的内存空间,会在应用程序终止后才会被释放;
提示:
只有确实需要唯一使用的对象才需要考虑单例模式,不要滥用单例。
iOS中最常见的单例就是UIApplication,UIWindow.
单例的实现步骤:
1> 重写allocWithZone方法;
allocWithZone方法是对象分配内存空间时,最终会调用的方法,重写该方法,保证只会分配一个内存空间。
2> 建立sharedXXX类方法,便于其他类访问;
方法实现代码如下:
?
单例模式
优点:
可以阻止其他对象实例化单例对象的副本,从而确保所有对象都访问唯一实例;
缺点:
单例对象一旦建立,对象指针是保存在静态区的,单例对象在堆中分配的内存空间,会在应用程序终止后才会被释放;
提示:
只有确实需要唯一使用的对象才需要考虑单例模式,不要滥用单例。
相关文章推荐
- iOS添加指纹识别
- ios - cordova 简介
- IOS中类和对象还有,nil/Nil/NULL的区别
- iOS 单例模式
- ios按钮的选中与不选中
- iOS 仿射变换改变后对fram的影响
- ios NSDateFormatter 1987-04-12夏令时时间节点格式化日期为空
- ios审核加急
- nagios配置监控hadoop日志
- nagios搭建
- pickerView 设置省市联动(原)
- IOS开发几何类方法总结
- iOS 3D Touch功能
- iOS下的__block与__weak
- 设置IOS按钮的背景
- IOS版AdMob集成KeyMob广告教程
- 文本转语音
- iOS 画线 绘制直线、矩形、三角形
- iOS开发真机调试和证书相关的一些坑
- iOS 效果很酷的分页排列 iCarousel