领域数据库的设计模式 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()
}