欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

Swift

當(dāng)前位置:主頁 > 軟件編程 > Swift >

Swift中定義單例的方法實(shí)例

來源:本站原創(chuàng)|時間:2020-01-11|欄目:Swift|點(diǎn)擊: 次

什么是單例

單例模式是設(shè)計(jì)模式中最簡單的一種,甚至有些模式大師都不稱其為模式,稱其為一種實(shí)現(xiàn)技巧,因?yàn)樵O(shè)計(jì)模式講究對象之間的關(guān)系的抽象,而單例模式只有自己一個對象。

單例模式(Singleton Pattern),也叫單子模式,是一種常用的軟件設(shè)計(jì)模式。 在應(yīng)用這個模式時,單例對象的類必須保證只有一個實(shí)例存在。

單實(shí)例Singleton設(shè)計(jì)模式可能是被討論和使用的最廣泛的一個設(shè)計(jì)模式了,這可能也是面試中問得最多的一個設(shè)計(jì)模式了。這個設(shè)計(jì)模式主要目的是想在整個系統(tǒng)中只能出現(xiàn)一個類的實(shí)例。這樣做當(dāng)然是有必然的,比如你的軟件的全局配置信息,或者是一個Factory,或是一個主控類,等等。

如何在 swift 中創(chuàng)建單例

在 swift 中有以下這兩種方式可以創(chuàng)建單例

全局變量的方式

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

使用該全局變量進(jìn)行引用

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

靜態(tài)屬性及私有化構(gòu)造方法的方式

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
 }
}

直接調(diào)用類方法進(jìn)行引用

NetworkManager.shared()

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對我們的支持。

參考自: What Is a Singleton and How To Create One In Swift

上一篇:Swift利用純代碼實(shí)現(xiàn)時鐘效果實(shí)例代碼

欄    目:Swift

下一篇:Swift中初始化init的方法小結(jié)

本文標(biāo)題:Swift中定義單例的方法實(shí)例

本文地址:http://mengdiqiu.com.cn/a1/Swift/11963.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有