如何理解 VIPER 干净架构?
How to understand the VIPER clean architecture?
我最近发现了 VIPER clean architecture,并开始寻找有关在 Android 平台上应用此体系结构的示例教程。然而,我只找到了一些让我感到困惑的示例项目,这就是为什么我想通过一个简单的例子来了解 VIPER 的基本原理。我想知道是否有人可以分享上面的一些好的教程。
我们开发者基本上是根据需求使用MVC、MVP或MVVM架构进行开发。选择哪种架构来开发应用程序很重要。影响软件架构选择的许多因素,如系统设计、要求、时间线等。
在 Viper 架构中,每个块对应一个具有特定任务、输入和输出的对象。它非常类似于流水线中的工人:一旦工人完成了对物体的工作,物体就会传递给下一个工人,直到产品完成。
V(视图):视图负责 UI 更新并显示演示者告诉它的任何内容。
I (Interactor) :Interactor负责从model层取数据,其实现完全独立于用户interface.All编写的业务逻辑在交互器里面。例如。获取用户数据 API 调用写入交互器。
P (Presenter):Presenter 作为中介执行角色,它从交互中获取数据并传递给 View。 (可能是数据或任何用户操作)
E(实体):基本上它包含交互器使用的对象模型。例如。学生、朋友、学院等
R(路由器):它包含应用程序的导航逻辑。例如。下一个按钮操作显示第二个屏幕。
此外,我使用了 PROTOCOL,它包含应用程序特定模块的所有规则和工作流程。在 iOS 中,所有协议都写在每个模块的单独协议 swift 文件中。
好处:
-所有模块都是独立的,因此 VIPER 非常适合大型团队。
-它使源代码更干净、更紧凑和可重用
-更容易采用TDD(测试驱动开发)
-您可以轻松地向现有应用程序添加新功能,而无需更改其他模块。
-可以应用 SOLID 原则。
-减少合并冲突的数量。
-它使编写自动化测试变得容易,因为您的 UI 逻辑与业务逻辑分离
参考:https://javedmultani16.medium.com/viper-architecture-viper-d740d98b7529
我最近发现了 VIPER clean architecture,并开始寻找有关在 Android 平台上应用此体系结构的示例教程。然而,我只找到了一些让我感到困惑的示例项目,这就是为什么我想通过一个简单的例子来了解 VIPER 的基本原理。我想知道是否有人可以分享上面的一些好的教程。
我们开发者基本上是根据需求使用MVC、MVP或MVVM架构进行开发。选择哪种架构来开发应用程序很重要。影响软件架构选择的许多因素,如系统设计、要求、时间线等。
在 Viper 架构中,每个块对应一个具有特定任务、输入和输出的对象。它非常类似于流水线中的工人:一旦工人完成了对物体的工作,物体就会传递给下一个工人,直到产品完成。
V(视图):视图负责 UI 更新并显示演示者告诉它的任何内容。
I (Interactor) :Interactor负责从model层取数据,其实现完全独立于用户interface.All编写的业务逻辑在交互器里面。例如。获取用户数据 API 调用写入交互器。
P (Presenter):Presenter 作为中介执行角色,它从交互中获取数据并传递给 View。 (可能是数据或任何用户操作)
E(实体):基本上它包含交互器使用的对象模型。例如。学生、朋友、学院等
R(路由器):它包含应用程序的导航逻辑。例如。下一个按钮操作显示第二个屏幕。
此外,我使用了 PROTOCOL,它包含应用程序特定模块的所有规则和工作流程。在 iOS 中,所有协议都写在每个模块的单独协议 swift 文件中。
好处:
-所有模块都是独立的,因此 VIPER 非常适合大型团队。
-它使源代码更干净、更紧凑和可重用
-更容易采用TDD(测试驱动开发)
-您可以轻松地向现有应用程序添加新功能,而无需更改其他模块。
-可以应用 SOLID 原则。
-减少合并冲突的数量。
-它使编写自动化测试变得容易,因为您的 UI 逻辑与业务逻辑分离
参考:https://javedmultani16.medium.com/viper-architecture-viper-d740d98b7529