Swift4 中的单利

2018-04-17  本文已影响76人  Eddy_0

单利在开发中是一个很流行的设计模式,很多的开发者使用这一设计模式。这是非常简单、常见且易于使用在项目中。

它使用静态属性初始化类实例,是具有全局共享类实例

我们已经多次使用苹果的基础APIs,比如UserDefaults.standard,FileManager.default等类似的单例类模式。
1, 下面是一个使用类的简单示例:

class LocationManager{

    //MARK: - 请求获取位置
    func requestForLocation(){
        print("Location granted")
    }
 }

 //使用
 let location = LocationManager() //初始化
 location.requestForLocation()    //调用方法 requestForLocation()

这是一个没有使用单利模式的类,用于访问任何我们需要初始化类的函数,以避免我们使用静态实例的单利类。

2, 编写第一个单例类

class LocationManager {

    //静态实例

    static let shared = LocationManager()

    //测试变量

    var locationGranted: Bool?

    //私有化初始化方法

    private init(){}

    //MARK: - 请求获取位置

    func requestForLocation() {

        locationGranted = true

        print("获取位置")

    }

}

一行代码使用单利类方法
 LocationManager.shared.locationGranted()

[图片上传失败...(image-2764e1-1523958238623)]
每个类都有默认的公共初始化方法,它现在变成私有的。现在不能再在外部初始化你的单例类。

如何使用单例
//使用简单
 LocationManager.shared.requestForLocation() // 获取位置

 //使用变量值
 print(LocationManager.shared.locationGranted ?? false) // true

翻译自:Singleton Class in Swift

上一篇 下一篇

猜你喜欢

热点阅读