我应该在哪里定义 iOS 中 VIPER 架构中的业务逻辑,Swift



我使用过不同的架构,我对VIPER架构有点陌生。我曾经在模型类中执行所有业务逻辑。这是否也是VIPER的最佳实践,或者在VIPER架构中是否有任何标准方法可以做到这一点,特别是在iOS,Swift中?

VIPER 模块中的业务逻辑驻留在交互器中,而表示器包含视图逻辑并准备供视图使用的内容。举一个简单的例子,如果演示者需要显示信息,它会要求交互器从数据源获取信息。

我发现这篇文章对于开始使用VIPER非常有用:https://www.objc.io/issues/13-architecture/viper/

如中所述 https://theswiftdev.com/the-ultimate-viper-architecture-tutorial 演示者区域是实现业务逻辑的位置。 交互区域用于从传感器、数据库、网络等实际采集。 是的,在某种基本概念的层面上,传感器的实际正确操作是一种业务逻辑;数据库的操作(特别是如果它有存储过程(是一种业务逻辑;遵守网络协议的规则和格式是一种业务逻辑,但该"业务"是基础设施的低级业务,是用VIPER编写高阶软件应用程序的基本应用域业务。

因此,演示者区域是应用的业务逻辑应驻留的位置,交互器仅关注完成数据采集本身的基础结构机制操作所需的内容。

  • 演示者它负责视图启动 UI 生成的调用。它还会在收到某些数据时更新 UI。
  • 交互器它的逻辑代码在这里。它会将结果返回给演示者,演示者会将数据发送到 UI 以进行更新。

这是一个在VIPER架构中开发的Swift演示应用程序。我希望它会有所帮助 https://github.com/anisrehman/MoviesDemo-VIPER

最新更新