Ben*_*ard 5 core-data ios swift
我编写的大多数使用 Core Data 的应用程序都遵循通用模式 - 模型类继承NSManagedObject自NSManagedObjectContext.
由于我正在一个新的副项目中评估几个不同的持久性选项,因此我很想找到一种方法将核心数据实现与其余代码分开。例如,我可能会使用DataStore使用协议定义的 a 概念。它要求任何实现都提供某些功能。例如getCars,addCar、 和deleteCar。应用程序不需要知道是否getCars从核心数据、领域、本地文件等获取。
我在使用 Core Data 实现时遇到的直接问题之一DataStore是,一旦Car作为实体添加到数据模型中,我就无法创建对象,Car除非通过指定的初始值设定项,该初始值设定项需要插入上下文进入。这显然不会成功,因为重点是将等的任何知识NSManagedObjectContext与各种视图控制器和其他类分开。
我正在考虑为所有核心数据实体使用其他名称(例如CDCar),然后添加一堆用于映射到/从CDCar和 的代码Car。或者也许制定一个Car在应用程序中通用的协议,并CDCar遵守该协议。有更常见的方法吗?
添加并行实体会增加很多复杂性,以至于不清楚解耦是否会带来净收益。
我要做的就是在DataStore类中包含工厂方法以根据需要创建实例。它不是直接DataStore创建非代码Car,而是调用createCar上的新方法DataStore。DataStore执行创建有效实例所需的任何操作并返回结果。这可能意味着您不需要,addCar因为您不会在DataStore.
| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |