20

我最近发现了VIPER 清洁架构,并开始寻找在 Android 平台上应用此架构的示例教程。然而,我只发现了一些让我感到困惑的示例项目,这就是为什么我想通过一个简单的例子来了解 VIPER 的基本原理。我想知道是否有人可以在上面分享一些好的教程。

4

1 回答 1

12

我们开发人员基本上根据需求使用 MVC、MVP 或 MVVM 架构进行开发。选择哪种架构来开发应用程序很重要。影响软件架构选择的许多因素,如系统设计、需求、时间线等。

在 Viper 架构中,每个块对应于具有特定任务、输入和输出的对象。这与流水线中的工人非常相似:一旦工人完成了对一个对象的工作,该对象就会传递给下一个工人,直到产品完成。

V(视图):视图负责 UI 更新并显示演示者告诉它的任何内容。

I(Interactor):Interactor负责从模型层获取数据,其实现完全独立于用户界面。所有业务逻辑都写在Interactor内部。例如,在 Interactor 中编写的 Get User Data API 调用。

P(Presenter):Presenter扮演中介角色,它从交互中获取数据并传递给View。(可能是数据或任何用户操作)

E(实体):基本上它包含交互器使用的对象模型。例如学生、朋友、大学等。

R(路由器):它包含应用程序的导航逻辑。例如,下一步按钮操作显示第二个屏幕。

此外,我使用了 PROTOCOL,它包含应用程序特定模块的所有规则和工作流程。在 iOS 中,每个模块的所有协议都写在单独的协议 swift 文件中。

好处:

-所有模块都是独立的,所以 VIPER 非常适合大型团队。

-它使源代码更干净、更紧凑和可重用

- 更容易采用 TDD(测试驱动开发)

- 您可以轻松地向现有应用程序添加新功能,而无需更改其他模块。

- 它可以应用 SOLID 原则。

- 减少合并冲突的数量。

- 它使编写自动化测试变得容易,因为您的 UI 逻辑与业务逻辑分离 在此处输入图像描述

参考:https ://medium.com/@javedmultani16/viper-architecture-viper-64f6cd91e6ec

于 2019-04-30T04:21:13.663 回答