android - 如何理解 VIPER 清洁架构?

标签 android architecture software-design viper-architecture

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

最佳答案

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

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

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

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

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

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

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

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

好处:

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

-它使源代码更简洁、更紧凑和可重用

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

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

-可以应用SOLID原则。

-减少合并冲突的数量。

-由于您的 UI 逻辑与业务逻辑分离,因此可以轻松编写自动化测试 enter image description here

引用:https://javedmultani16.medium.com/viper-architecture-viper-d740d98b7529

关于android - 如何理解 VIPER 清洁架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38408795/

相关文章:

zend-framework - Zend Framework 应用程序中的事件

javascript - 使用 Vuex 进行细粒度组织

c# - 如何制作俄罗斯方 block 克隆?

java - 设置形状颜色的不透明度

java - Android AsyncTask/Service 在任务完成前被杀死

java - 在Web项目中,我们可以在不了解UI的情况下编写核心服务层吗?

json - API POST 端点和图像处理

android - 如何在 cocos2d for android 中显示带有确认消息和是/否按钮的 UIAlertView?

安卓工作室 : Image Buttons Not Showing Full Image

c++ - 在这种情况下,有没有办法用一个解决方案替换两个仅类型不同的相似功能?