Swift中单例的集中创建方式

前端之家收集整理的这篇文章主要介绍了Swift中单例的集中创建方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

单例模式是设计模式中最简单的一种,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象。

当你只需要一个实例的时候需要使用单例,如UIApplication.sharedApplication(),NSUserDefaults.standardUserDefaults() 等 ,windows的任务管理器,回收站 都是只能同时存在一个。

下面看看swift中创建单例的集中方式:
1、一个句话搞定,所有用到的地方都是同一个

  1. final class sigleOne {
  2.  
  3. // 单例
  4. static let single = sigleOne();
  5. private init(){}
  6. }

2、

  1. final class sigleTwo {
  2. // 单例
  3. // class只能用在class类型,但是static在结构体\class\enum都能用,区别就是如果用在class类型里面 static = final class
  4. // class func shareInstance() -> sigleTwo {
  5. static func shareInstance() -> sigleTwo {
  6.  
  7. struct Sigle{
  8. static var onceToken : dispatch_once_t = 0
  9. static var single:sigleTwo?
  10. }
  11.  
  12. // 使用dispatch_once保证创建代码只执行一次
  13. dispatch_once(&Sigle.onceToken) {
  14. Sigle.single = sigleTwo .shareInstance()
  15. }
  16.  
  17. return Sigle.single!
  18. }
  19.  
  20. private init(){}
  21. }

3、

  1. final class sigleThree {
  2.  
  3. static var sharedInstance : sigleThree {
  4. struct Static {
  5. static let instance : sigleThree = sigleThree()
  6. }
  7. return Static.instance
  8. }
  9.  
  10. private init(){}
  11. }

4.

  1. //全局的常量
  2. private let single = sigleFour()
  3.  
  4. final class sigleFour{
  5. static var sharedInstance : sigleFour {
  6. return single
  7. }
  8.  
  9. private init(){}
  10. }

swift还在初学阶段,如果有不对的地方,还望指出。

猜你在找的Swift相关文章