如何理解VIPER清洁架构?

时间:2016-07-16 07:15:26

标签: android architecture software-design viper-architecture

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

4 个答案:

答案 0 :(得分:9)

关于android上VIPER的基本原理有一篇很长的好文章。基本上谈谈从Uncle Bob的干净架构中采用的原则是如何首先在iOS上实现的,以及它如何在android上实现。

http://luboganev.github.io/blog/clean-architecture-pt1/

由5部分组成。希望它能为您提供VIPER的基本原则和教程。

答案 1 :(得分:2)

简而言之,这与 Clean Architecture 所述有关 Uncle Bob

iOS世界中常用的缩写VIPER,Android世界使用原始名称Clean Architecture

VIPER iOS应用程序清洁体系结构的体系结构。 VIPER单词是View,Interactor,Presenter,Entity和Routing的反义词。

The clean way ,由 Fernando Cejas 用于 Android应用。这个想法很简单:清洁架构代表一组实践。

我建议您阅读Fernando Cejas的 Android 系列文章:

您可以在其中找到有关问题和讨论的git存储库。

答案 2 :(得分:1)

您可以浏览我的其中一篇关于VIPER design pattern的入门实现的博客。您也可以找到代码here

答案 3 :(得分:1)

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

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

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

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

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

E(实体):基本上,它包含Interactor使用的对象模型。例如。学生,朋友,学院等。

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

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

好处:

-所有模块都是独立的,因此VIPER对于大型团队确实非常有用。

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

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

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

-可以应用SOLID原理。

-减少合并冲突。

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

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