我应该在iOS、Swift的VIPER架构中的何处定义业务逻辑

von4xj4u  于 2022-12-17  发布在  Swift
关注(0)|答案(3)|浏览(221)

我使用过不同的架构,对VIPER架构还是个新手。我过去在Model Class中处理所有业务逻辑。这也是VIPER的最佳实践吗?或者在VIPER架构中,特别是在iOS、Swift中,是否有任何标准的方法来处理这一问题?

vsdwdz23

vsdwdz231#

VIPER模块中的业务逻辑驻留在交互器中,而Presenter包含视图逻辑,并准备视图使用的内容。举个简单的例子,如果Presenter需要显示信息,它会要求交互器从数据源中获取信息。
我发现这篇文章对于VIPER入门非常有用:https://www.objc.io/issues/13-architecture/viper/

ds97pgxw

ds97pgxw2#

https://theswiftdev.com/the-ultimate-viper-architecture-tutorial中所述,表示器区域是实现业务逻辑的区域。交互器区域用于从传感器、数据库、网络等进行实际采集。是的,在基本概念的某种程度上,传感器的实际正确操作是一种业务逻辑;数据库的操作(特别是当它有存储过程时)是一种业务逻辑;遵守网络协议的规则和格式是一种业务逻辑,但该“业务”是基础设施的低级业务,即高级软件应用程序正在用VIPER编写的面包和黄油应用程序域业务。
因此,演示者区域是应用程序的业务逻辑所在的区域,交互者只关注完成数据采集本身的基础设施机制的操作所需的内容。

o2gm4chl

o2gm4chl3#

*Presenter负责查看发起UI生成的调用,接收到一些数据后更新UI。
*交互器此处为逻辑代码。它将向演示者返回结果,演示者将向UI发送数据以进行更新。

这是一个在VIPER architecutre开发的Swift演示应用程序,希望对https://github.com/anisrehman/MoviesDemo-VIPER有所帮助

相关问题