国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

Swift中定義單例的方法實例

2020-03-09 17:42:17
字體:
供稿:網(wǎng)友

什么是單例

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

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

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

如何在 swift/37122.html">swift/209472.html">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í)價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。

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


注:相關(guān)教程知識閱讀請移步到swift教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新巴尔虎右旗| 阳原县| 叶城县| 刚察县| 梁山县| 祥云县| 赞皇县| 佛山市| 灌云县| 朔州市| 玉溪市| 中宁县| 屯门区| 玉屏| 西畴县| 锦屏县| 思茅市| 奉新县| 镇平县| 武强县| 丁青县| 石棉县| 左云县| 彝良县| 屏南县| 方山县| 察隅县| 筠连县| 拉孜县| 德清县| 兰州市| 平定县| 莒南县| 鸡泽县| 新余市| 洱源县| 滨州市| 大悟县| 康定县| 黎城县| 三亚市|