核心数据dao模式

Gui*_*tro 7 cocoa core-data

我正在开始为ios开发,现在我正在研究核心数据.有一件事对我来说并不清楚,当我在学习时,很多人都在管理控制器上管理核心数据实体.对我来说,这不是MVC,因为核心数据来自模型层.

所以我认为使用DAO模式实现核心数据会很好,但在此之前我想知道是否存在任何核心数据模式,或者是否存在使用核心数据实现DAO的一些缺点?

Jas*_*ues 8

避免在控制器中实现数据查找方法确实是正确的.这样就遵循了MVC设计模式的理念:控制器应该只调用高级"粘合"代码,因此充当描述视图如何与模型交互的文档.

关于持久对象,有两种主要方法:

  • 使用ActiveRecord模式
  • 使用数据访问对象模式.

数据访问对象(DAO)是专用于模型/域对象的持久化到一个数据源的接口.

ActiveRecord的图案把模型对象本身上的持久性的方法,而DAO限定离散的接口.DAO模式的优点是:

  • 很容易定义另一种持久性风格,例如从数据库移动到云,而不改变界面,从而影响其他类.

  • 持久性问题远离主要模型对象关注模块化.

ActiveRecord模式的优点是简单.

ActiveRecord for CoreData

目前,ActiveRecord模式在Objective-C开发人员中似乎更受欢迎.以下项目为CoreData提供ActiveRecord:https://github.com/magicalpanda/MagicalRecord

DAO for CoreData

我不熟悉为CoreData提供DAO模式的广泛使用的库.但是,如果没有图书馆的协助,它可以很容易地应用:

  • 为特定实体定义所有数据方法 - 在协议上查找,保存,删除等.
  • 通过调用适当的CoreData方法实现协议.

注意:Typhoon框架示例项目很快将包含一些使用CoreData应用DAO模式的示例.