使用VIPER模式在iOS项目的内存数据中保存以及如何传播?

时间:2018-02-08 17:31:47

标签: ios viper-architecture

我的项目中有一个流程,我有不同的屏幕来编辑实体的不同部分,仅在此流程的末尾创建。在这种情况下,如何在VIPER中组织代码?

示例:

我想创建一个Test实体。它最后有一个标题和描述,问题和一些辅助文本。每个部分在一个单独的屏幕上按顺序编辑,如:

创建标题/描述--->创建问题--->输入Auxiliar Text --->创建

我在哪里保留最后所需的所有数据? 我是否为每个演示者传递了它?我是否将所有这些内容保留在Interactor中?

2 个答案:

答案 0 :(得分:0)

在我们的团队中,我们决定Presenter可以存储一些州。因此,我们将模型传递给下一个模块并将其存储在Presenter

您可以在我的开源项目here中找到 VIPER 架构的演示用法,但是没有您要求的流量示例。

答案 1 :(得分:0)

正如 https://theswiftdev.com/the-ultimate-viper-architecture-tutorial 中清晰简洁地解释的那样,interactor 区域隔离了如何通过技术获取实体/数据。例如,您的内存中数据现在可能是简单的 DRAM,但可以想象,将来或在不同平台上可能是用于多核处理器的缓存一致 NUMA 或 TimesTen 内存数据库引擎或共享内存间进程。 VIPER 架构的价值在于,随着时间的推移,内存中的哪个变体 {UMA DRAM、ccNUMA、TimesTen、共享内存}的细节被隔离在 interactor 区域中,以便由于这些不同的技术而发生剧变表示内存中的数据不会与 presenter 区域(或更糟,其他区域)中的业务逻辑混合和交织在一起。此外,随着您的应用程序从其第一个平台到第二个及后续平台,您将欣赏能够在构建时将不同的交互器区域交换为一个小平台上的简单 UMA DRAM、多核平台上的 ccNUMA、TimesTen 上的数据中心规模和共享内存,例如嵌入式系统或通用桌面操作系统。