Swift 单例模式(Singleton)
在本教程中,我们将借助实例了解 Swift 单例模式。
在 Swift 中,Singleton 是一种设计模式,它确保类只能有一个对象。这样的类称为单例类。
要创建单例类,我们需要遵循一些规则
1.创建私有初始化初始化让我们可以实例化类的对象。而且,使类的初始化限制了从类外部创建类的对象。
class FileManager {
...
// create a private initializer
private init() {
}
}
// Error Code
let obj = FileManager()
这里,FileManager
类的初始化是私有的。因此,当我们试图在类之外创建 FileManager
的对象时,会产生一个错误。
2.创建静态类型单例对象
在单例类中,我们创建该类的单个静态类型对象。使对象成为静态的允许我们使用类名访问对象。
class FileManager {
// static property to create singleton
static let fileObj = FileManager()
...
}
// access the singleton
let data = FileManger.fileObj
这里,我们使用类名 FileManager
访问 fileObj
对象。
实例:Swift 单例
class FileManager{
// create a singleton
static let fileObj = FileManager()
// create a private initializer
private init() {
}
// method to request file
func checkFileAccess(user: String) {
// condition to check username
if user == ("@programiz.com") {
print("Access Granted")
}
else {
print(" Access Denied")
}
}
}
let userName = "@programiz.com"
// access method
let file = FileManager.fileObj
file.checkFileAccess(user: userName)
结果如下:
Access Granted
在上面的实例中,我们创建了一个单例类 FileManager
。因为它是一个单例类,所以我们将初始化设置为私有,并创建了一个名为 fileObj
的静态对象。
注意这一行,
var file = FileManager.fileObj
file.checkFileAccess(user: userName)
在这里,我们使用类名 FileManager
访问了对象 fileObj
。然后,我们访问了方法 checkFileAccess()
。
注意:设计模式类似于我们的代码库,其中包含世界各地程序员共享的各种编码技术。
重要的是要注意,只有少数场景(如文件管理、API 请求)才有意义。如果您不确定是否使用单例,我们建议您避免完全使用单例。了解更多:单例模式有什么不好?