领域数据库Swift 3.1 - Singleton的设计模式

时间:2016-03-22 03:47:50

标签: ios swift swift3 swift2 realm

  

我正在使用RealmSwift,它是Swift中CoreData / SQLite的现代数据库替代品。

我想知道如何为可以管理/处理RealmSwift Framework的所有查询的Class实施设计

这个问题有点类似于实现SQLite Model Manager但是对于RealmSwift。

具体来说,我不需要上面提到的单例对象/实例。

2 个答案:

答案 0 :(得分:7)

Realm有一个相当聪明的内部缓存系统,每当Realm之类的调用发生时,let realm = try! Realm()的先前实例就会被保留并回收。因此,它并不是真正必要的,也不建议尝试将Realm实例本身合并到一个单例中。

如果您想大量自定义Realm实例的设置,通常会通过Realm Configuration对象执行此操作,该对象是静态且线程安全的。如果是这种情况,那么当您需要创建新的Configuration实例时,拥有一个返回适当Realm对象的单例(或者甚至只是一个静态类方法)会更合适

that thing in swift有一个关于如何在Swift中创建单例的页面,它本质上只是类实现的一个静态属性:

class SomeManager {
    static let sharedInstance = SomeManager()
}

答案 1 :(得分:1)

使用包含一个案例的枚举:

enum Singleton: Protocols {
    case instance
    /// methods
}

用过:

Singleton.instance.method(args)