Я смотрю учебник по области от youtube, инструктор, использующий синглтон в классе обслуживания, как показано ниже:
import Foundation
import RealmSwift
class RealmService {
// singleton
private init() {}
static let shared = RealmService()
var realm = try! Realm()
func save<T: Object>(object: T) {
do {
try realm.write {
realm.add(object)
}
} catch {
post(error)
}
}
func update<T: Object>(object: T, for dictionary: [String: Any?]) {
do {
try realm.write {
for (key,value) in dictionary {
object.setValue(value, forKey: key)
}
}
} catch {
post(error)
}
}
func delete<T: Object>(object: T) {
do {
try realm.write {
realm.delete(object)
}
} catch {
post(error)
}
}
func post(_ error: Error) {
NotificationCenter.default.post(name: Notification.Name.realmError, object: error)
}
func observerRealmErrors(in vc: UIViewController, completion: @escaping(Error?) -> Void ) {
NotificationCenter.default.addObserver(forName: Notification.Name.realmError, object: nil, queue: nil) { (notification) in
completion(notification.object as? Error)
}
}
func stopObservingErrors(in vc: UIViewController) {
NotificationCenter.default.removeObserver(vc, name: NSNotification.Name.realmError, object: nil)
}
}
Я понимаю, что синглтон - это объект, который создается только один раз.но почему для этого нужно использовать синглтон?если код подобен приведенному ниже, я понимаю, потому что не имеет никакого смысла, если в качестве идентификатора используется более одного «bobby», тогда имеет смысл создать синглтон-класс
, но как насчет этого?сервис области как код выше?почему нужно использовать синглтон?Я видел, как какой-то инструктор использовал синглтон для класса обслуживания
class AccountManager {
static let sharedInstance = AccountManager()
var userInfo = (ID: "Bobby", Password: 01036343984)
// Networking: communicating server
func network() {
// get everything
}
private init() { }
}