單例模式是設計模式中最簡單的一種,甚至有些模式大師都不稱其爲模式,稱其爲一種實現技巧,由於設計模式講究對象之間的關係的抽象,而單例模式只有本身一個對象。swift
當你只須要一個實例的時候須要使用單例,如UIApplication.sharedApplication()
等 ,windows的任務管理器,回收站 都是隻能同時存在一個。windows
下面看看swift中的幾種實現方式:設計模式
一、spa
import Foundation class SingleOne { //單例 static let shareSingleOne = SingleOne() }
一句話搞定,靜態常理。全部地方用到的都是同一個設計
二、code
import Foundation class SingleTwo { //單例 class func shareSingleTwo()->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能夠保證其中的代碼只執行一次對象
三、blog
import Foundation //全局的常量 let single = SingleThree() class SingleThree { class var sharedInstance : SingleThree { return single } }
四、ip
import Foundation class SingleFour { static var sharedInstance : SingleFour { struct Static { static let instance : SingleFour = SingleFour() } return Static.instance } }
在方法內定義靜態常量it