博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单例 - iOS
阅读量:6845 次
发布时间:2019-06-26

本文共 767 字,大约阅读时间需要 2 分钟。

单例模式是一种非常有用的设计模式,一个类在系统中只有唯一实例对象.通过全局的一个入口对该实例对象进行访问操作.

SDK 中也有很多类使用了单例模式,例如 Foundation 和 Application Kit 框架中的一些类只允许创建单件对象,即这些类在当前进程中的唯一实例. 

举例来说,NSFileManager 和 NSWorkspace 类在使用时都是基于进程进行单件对象的实例化.当向这些类请求实例的时候,它们会向您传递单一实例的一个引用,如果该实例还不存在,则首先进行实例的分配和初始化.单件对象充当控制中心的角色,负责指引或协调类的各种服务.如果类在概念上只有一个实例(例如:NSWorkspace),就应该产生一个单件实例,而不是多个实例; 

如果未来可能有多个实例,可以使用单件实例机制,而不是工厂方法或函数.

在程序中单例模式经常希望一个类仅有一个实例,而不运行一个类还有多个实例.在 SDK 中根据特定的需求有些类不仅仅提供了单例访问接口同时还提供了实例化的对象接口.例如 NSFileManager 即可用通过 defaultManager 的方法返回一个对象,但若需要一个新的实例对象同样也可以通过 alloc init 的方法.

+ (instancetype)shareInstance {    static YHAccessAuthorization *shareInstance = nil;    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        shareInstance = [[self alloc] init];    });        return shareInstance;}复制代码

转载地址:http://sivul.baihongyu.com/

你可能感兴趣的文章
powerdesigner中实现PDM到MYSQl数据库的转换
查看>>
《新参者》—— 读后总结
查看>>
vim常用命令
查看>>
NodeJS写个爬虫,把文章放到kindle中阅读
查看>>
jQuery 修改 span 里的内容
查看>>
Domino SSO配置无问题,但就是不生效
查看>>
c语言 自定义strlen
查看>>
superdic cracked by TK
查看>>
开发人员需要熟知的常用Linux命令之七:Gzip及其常用打包、压缩、解压命令
查看>>
转一个打包程序教程
查看>>
Android -----listView的属性大全
查看>>
快速排序算法之我见(附上C代码)
查看>>
FineUI参考手册(离线版)现已免费提供下载!
查看>>
Nginx+Windows负载均衡(转载)
查看>>
[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到)
查看>>
优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码)。
查看>>
微软最有价值专家大中华峰会花絮视频
查看>>
Chapter 1 First Sight——25
查看>>
64bit Centos6.4搭建hadoop-2.5.1
查看>>
前端开发必备!Emmet使用手册
查看>>