iOS Singleton

Objective-C & Swift 版本比較

丁叮盯町
2 min readSep 17, 2020

單例模式 Singleton,是一種常用的軟體設計模式 (design pattern),屬於創建型模式的一種。在應用單例時,單例物件的類必須保證只會有一個實例存在。許多時候整個系統需要一個全局的物件,這樣有利於我們協調系統整體行為。

比如在某個服務器程式,該服務器的配置信息存放在一個文件中,這些配置數據由一個單例物件統一讀取,然後服務程序中的其他物件再通過這個單例物件獲取這些配置信息。這種方式簡化了在複雜環境下的配置管理。

實現單例模式的思路是:確保要實作單例的類返回的對象永遠是同一個。

Objective-C 的做法:

之所以使用 dispatch_once 的原因,是為了避免在多重 thread 的環境下,sharedInstance 可能會被重複建立的問題。

Swift 寫法:

Swift的寫法簡單很多。首先, Create 一個 static 且為 constant 的 instance。然後 initializer 必須是 private initializer,只能被 MyClass 自己呼叫。

如果是要寫成 Objective-C 能調用的物件,就要繼承 NSObject

--

--

丁叮盯町
丁叮盯町

Written by 丁叮盯町

0 Followers

單純的程序猿,想寫些什麼記錄生活、記錄所學

No responses yet