swift實現單例的四種方式



單例模式

單例模式是設計模式中最簡單的一種,甚至有些模式大師都不稱其為模式,稱其為一種實現技巧,因為設計模式講究對象之間的關系的抽象,而單例模式只有自己一個對象。

當你只需要一個實例的時候需要使用單例,如UIApplication.sharedApplication() 等 ,windows的任務管理器,回收站 都是只能同時存在一個。

下面看看swift中的幾種實現方式:

1、

import Foundation class SingleOne { //單例 static let shareSingleOne = SingleOne() }

一句話搞定,靜態常理。所有地方用到的都是同一個

2、

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可以保證其中的代碼只執行一次

3、

import Foundation //全局的常量 let single = SingleThree() class SingleThree { class var sharedInstance : SingleThree { return single } }

4、

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

在方法內定義靜態常量



文/大石頭布(簡書作者)
原文鏈接:http://www.jianshu.com/p/230cc900948c
著作權歸作者所有,轉載請聯系作者獲得授權,並標注“簡書作者”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM