swift实现单例的四种方式

单例模式

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

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

下面看看swift中的几种实现方式:

1、

import Foundation

class SingleOne {
    
    //单例
    static let shared = SingleOne()
    
}

一句话搞定,静态常理。所有地方用到的都是同一个

2、

import Foundation

class SingleTwo {
    
    //单例
    class func shared()->SingleTwo{
        struct Singleton{
            static var onceToken : dispatch_once_t = 0
            static var single:SingleTwo?
        }
        dispatch_once(&Singleton.onceToken,{
            Singleton.single=shareSingleTwo()
        }
        )
        return Singleton.single!
    }
    
}

使用dispatch_once可以保证其中的代码只执行一次

3、

import Foundation

//全局的常量
let single = SingleThree()

class SingleThree {

    class var shared : SingleThree {
        return single
    }
}

4、

import Foundation

class SingleFour {
    
    static var shared : SingleFour {
        struct Static {
            static let instance : SingleFour = SingleFour()
        }
        return Static.instance
    }
}

在方法内定义静态常量

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,217评论 30 472
  • swift实现单例的四种方式 : 单例模式 单例模式是设计模式中最简单的一种,甚至有些模式大师都不称其为模式,称其...
    Jason_Wong阅读 1,031评论 0 5
  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 4,298评论 4 34
  • 单例一般作为:工具类 单例命名:一般情况下如果一个类是单例,那么就要提供一个类方法用于快速创建单例对象,而且这个类...
    甘哲157阅读 1,794评论 0 15
  • 也许年龄越来越大的缘故,明明可以睡懒觉却睡不着了于是起来刷刷朋友圈看到一朋友发的“为什么你的工作越来越不开心”很有...
    童画西游阅读 300评论 0 1