gpt4 book ai didi

ios - 我应该为 Realm(ios) 使用存储库吗

转载 作者:搜寻专家 更新时间:2023-10-30 21:55:50 26 4
gpt4 key购买 nike

首先,我是 ios 的新手,没有任何使用移动数据库的经验。

想集成到我的应用程序 Realm(swift) 中,想知道将服务层和存储库分开或将所有内容都包含到服务中是否有意义。

一些例子有一个很好的观点。

class UserService {

var userRepository: UserRepository!

func findById(userId: String) -> User? {
return userRepository.findById(userId: userId)
}
}

class UserRepository {

private let realm = try! Realm()

func findById(userId: String) -> User? {
return realm.object(ofType: User.self, forPrimaryKey: userId)
}
}

最佳答案

在数据库 API 之上添加一个抽象层是很常见的。许多其他开发人员将 Realm 包装在他们自己的类中,以便从他们的业务逻辑代码中隐藏 API。

有几个注意事项需要注意:

  1. 您需要小心,不要因此意外损害性能。有些用户甚至将 Realm 对象中的数据复制到他们自己的对象中。这违背了 Realm 的“零复制”机制的目的,因此该应用程序现在的性能本质上比使用 Realm 本身更差。
  2. 这是“先发制人的工作”。您预先做了很多工作,以防万一您可能会改变主意。不久前,我在一个相当大的应用程序中将 Core Data 转换为 Realm,只花了几个小时。尝试构建一个您可能永远不会最终使用的“通用”数据库解决方案听起来可能不会有返回。
  3. 您正在增加应用的复杂性。这意味着需要更多的错误可能性和更严格的测试来确保您的 API 和数据库 API 同步。

只要您要移动到的新数据库也包含管理对象(即核心数据),从一个数据库转换到另一个数据库通常不会有很多工作。因此,我建议在必要时避免不必要的工作。

免责声明:我在 Realm 工作,但这是我作为过去使用 Core Data、原始 SQLite 和 Realm 发布个人应用程序的人的意见。

关于ios - 我应该为 Realm(ios) 使用存储库吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43775056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com