首頁 > web前端 > js教程 > 主體

Swift中定義單例的方法實例

php中世界最好的语言
發布: 2018-04-11 14:09:45
原創
1562 人瀏覽過

這次帶給大家在Swift中怎麼定義單例,在Swift中定義單例的注意事項有哪些,下面就是實戰案例,一起來看一下。

# 什麼是單例

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

單例模式(Singleton Pattern),也叫單子模式,是常用的軟體設計模式。 在應用這個模式時,單例物件的類別必須保證只有一個實例存在。

單一實例Singleton設計模式可能是被討論和使用的最廣泛的一個設計模式了,這可能也是面試中問得最多的一個設計模式了。這個設計模式主要目的是想在整個系統中只能出現一個類別的實例。這樣做當然是有必然的,例如你的軟體的全域配置訊息,或是一個Factory,或是一個主控類,等等。

如何在 swift 中建立單例

在 swift 中有以下這兩種方式可以建立單例

全域變數的方式

let sharedNetworkManager = NetworkManager(baseURL: API.baseURL)
class NetworkManager {
 // MARK: - Properties
 let baseURL: URL
 // Initialization
 init(baseURL: URL) {
 self.baseURL = baseURL
 }
}
登入後複製

使用該全域變數進行引用

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
 print(sharedNetworkManager)
 return true
}
登入後複製

靜態屬性及私有化建構方法的方式

class NetworkManager {
 // MARK: - Properties
 private static var sharedNetworkManager: NetworkManager = {
 let networkManager = NetworkManager(baseURL: API.baseURL)
 // Configuration
 // ...
 return networkManager
 }()
 // MARK: -
 let baseURL: URL
 // Initialization
 private init(baseURL: URL) {
 self.baseURL = baseURL
 }
 // MARK: - Accessors
 class func shared() -> NetworkManager {
 return sharedNetworkManager
 }
}
登入後複製

直接呼叫類別方法進行引用

NetworkManager.shared()
登入後複製

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

IView中on-change屬性如何使用

vue專案中怎麼使用sass設定

以上是Swift中定義單例的方法實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!