2

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

4

2 回答 2

0

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

因此,演示者区域是应用程序的业务逻辑应该驻留的地方,交互者只关注完成数据采集本身的基础设施机制的操作所需的内容。

于 2021-04-02T02:46:35.987 回答
0

VIPER 模块中的业务逻辑位于 Interactor 中,而 Presenter 包含视图逻辑并准备内容以供视图使用。举个简单的例子,如果您的 Presenter 需要显示信息,它会要求您的 Interactor 从数据源中获取信息。

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

于 2020-07-12T01:59:11.440 回答