领域数据库的设计模式 Swift 3.1 - 单例
Design Pattern for Realm Database Swift 3.1 - Singleton
I'm working on RealmSwift, which is a modern database replacement of CoreData/SQLite in Swift.
我想知道如何实现 Class
的设计,它可以 manage/handle RealmSwift Framework
的所有查询
这个问题有点类似于实现 SQLite 模型管理器,但针对的是 RealmSwift。
具体来说,我不需要上面提到的单例 object/instance。
在一种情况下使用枚举:
enum Singleton: Protocols {
case instance
/// methods
}
像这样使用:
Singleton.instance.method(args)
Realm 有一个相当聪明的内部缓存系统,其中 Realm
的先前实例会在每次发生 let realm = try! Realm()
之类的调用时保留并回收。因此,没有必要也不建议尝试将 Realm
实例本身合并到单例中。
如果您想大量自定义 Realm
实例的设置,您通常会通过静态且线程安全的 Realm Configuration
对象来实现。如果是这样的话,当你需要创建一个新的 Realm
实例。
that thing in swift 有一个关于如何在 Swift 中创建单例的页面,它本质上只是一个 class 实现的静态 属性:
class SomeManager {
static let sharedInstance = SomeManager()
}
I'm working on RealmSwift, which is a modern database replacement of CoreData/SQLite in Swift.
我想知道如何实现 Class
的设计,它可以 manage/handle RealmSwift Framework
这个问题有点类似于实现 SQLite 模型管理器,但针对的是 RealmSwift。
具体来说,我不需要上面提到的单例 object/instance。
在一种情况下使用枚举:
enum Singleton: Protocols {
case instance
/// methods
}
像这样使用:
Singleton.instance.method(args)
Realm 有一个相当聪明的内部缓存系统,其中 Realm
的先前实例会在每次发生 let realm = try! Realm()
之类的调用时保留并回收。因此,没有必要也不建议尝试将 Realm
实例本身合并到单例中。
如果您想大量自定义 Realm
实例的设置,您通常会通过静态且线程安全的 Realm Configuration
对象来实现。如果是这样的话,当你需要创建一个新的 Realm
实例。
that thing in swift 有一个关于如何在 Swift 中创建单例的页面,它本质上只是一个 class 实现的静态 属性:
class SomeManager {
static let sharedInstance = SomeManager()
}