微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

《从零开始学Swift》学习笔记Day 63――Cocoa Touch设计模式及应用之单例模式

原创文章,欢迎转载。转载请注明:关东升的博客

什么是设计模式。设计模式是在特定场景下对特定问题的解决方案,这些解决方案是经过反复论证和测试总结出来的。实际上,除了软件设计,设计模式也被广泛应用于其他领域,比如UI设计和建筑设计等。

下面来介绍Cocoa Touch框架中的设计模式中的单例模式。

单例模式

单例模式的作用是解决“应用中只有一个实例”的一类问题。在Cocoa Touch框架中,有UIApplicationNSUserDefaultsNSNotificationCenter等单例类。另外,NSFileManagerNSBundle类虽然属于Cocoa框架的内容,但也可以在Cocoa Touch框架中使用(Cocoa框架中的单例类有NSFileManagerNSWorkspaceNSApplication等)。

问题提出

一个应用程序的生命周期中,有时候只需要某个类的一个实例。例如:当iOS应用程序启动时,应用的状态由UIApplication类的一个实例维护,这个实例代表了整个“应用程序对象”,它只能是一个实例,其作用是共享应用程序中的一些资源、控制应用程序的访问,以及保持应用程序的状态等。

解决方

单例模式的实现有很多方案,苹果公司在《UsingSwift with Cocoa and Objective-C》官方文档中给出了一种单例模式的实现。最简单形式代码如下:

classSingleton{
staticletsharedInstance=Singleton()
}


上述代码采用static的类属性实现单例模式,这种类属性只被延迟加载执行一次,即便是在多线程情况下也只是执行一次,并且保证是线程安全的。

如果需要进行一些初始化,可以使用如下带有闭包形式代码

classSingleton{
staticletsharedInstance:Singleton={
letinstance=Singleton()
//初始化处理
returninstance
}()
}


单例模式除了上述苹果官方给出的实现外,还有很多种实现方式。

欢迎关注关东升新浪微博@tony_关东升。
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息

wKiom1beOnKS2M8TAAAs2MBEZnc189.png

更多精品iOSCocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
智捷课堂论坛网站:http://51work6.com/forum.php

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐