gpt4 book ai didi

ios - 避免对核心数据(或类似的持久性框架)的全局依赖

转载 作者:行者123 更新时间:2023-11-28 23:34:15 25 4
gpt4 key购买 nike

像 Core Data 这样的数据持久框架可以通过减少支持数据存储所需的代码量来极大地加快应用程序开发速度。

然而,采用这种框架的一个主要缺点是,在代码库中引入了不可避免的全局和交叉依赖项。

对此类框架的依赖有多种形式,包括但不限于:

  1. 引用或子类化关键 API 类 - 因此对于 Core Data,这将是 NSManagedObjectContextNSManagedObject 等。

  2. 行为依赖 - 框架提供了一些不太明显的隐式功能,应用程序在某种程度上依赖于这些功能来工作。对于 Core Data,这可能是反向关系的自动管理。

  3. 功能依赖 - 框架提供其他选项所缺乏的功能。对于 Core Data,这可能是多级撤消。

有了这个想法,我的问题是:

  1. 在处理全新代码时,最好使用什么策略来避免引入像这样的主要横切依赖项?

  2. 当存在需要打破的现有依赖关系时,最好使用什么技术?例如,Apple 已弃用 Core Data,因此需要更换它,纯 iOS 应用程序需要成为跨平台应用程序。

最佳答案

将领域模型与持久性模型隔离开来。将持久层与域层隔离,使用 DAL 或存储库模式将其隔离。将域模型映射到持久实体的成本很高,而且通常很乏味,并且破坏了自动域-> 关系映射工具的很多值(value)。

你真的必须在这里做出艰难的决定,你是否想要独立,如果是,你将不得不在架构上隔离,这将是昂贵的。它会让其他事情变得更容易,测试一个孤立的领域模型是一件美好的事情。测试行为隐藏在框架中的模型是一种痛苦的练习。

关于ios - 避免对核心数据(或类似的持久性框架)的全局依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55574909/

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