V: View视图:在这里并不是指传统的UIView或其子类,事实上它就是UIViewController,在前面所说到,VIPER架构主要是将MVC架构中的Controller进行更加细致的划分,而View(视图)层则是主要负责一些视图的显示、布局,用户事件的接受以及转发,基本的显示逻辑处理等等工作。
I: Interactor交互器:其为VIPER的中心枢纽,主要负责交互的工作,例如数据的请求(网络请求、本地持久化层请求)、某些业务逻辑的处理,在这里我们得到的数据是原始数据,需要经过解析处理转换成能够直接应用于视图的视图模型数据,所以我们需要用到了下一层Presenter(展示器)。
P: Presenter展示器:当我们在上一层Interactor(交互器)中获得原始数据后,我们需要将数据进行解析处理,比如我们在交互器中进行了网络请求,得到了json数据,若要将json中所包含的内容显示出来,我们则需要将json数据进行解析,展示器就是专注于数据的解析转换,将原始的数据转换成最终能够直接显示在试图上的视图模型数据。此外,展示器中还带有路由器Router,可以进行路由的操作。
E: Entity实体模型对象
R: Router路由器: 负责视图的跳转,因为使用VIPER架构需要进行各层之间的相互绑定,所以视图的跳转不能简单地使用原始的方法
作者:LikeSomeBody
链接:https://www.jianshu.com/p/4d6ada4fbea5
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
本Demo是VIPER在swift语言上的简单实现, 还参考RIBs使用了Builder去组合VIPER中的各个模块, 同时也使用Listener去负责两个VIPER直接的数据和事件的交互. 大部分的设计思路都是参考Uber的RIBs的, 只是将RIBs的静态注入的方式换成可以支持动态加载的方式, 去除了Component部分.简化了开发者的入门门槛.
Demo中有使用方式和文件模板
https://github.com/MolueJames/VIPER
网友评论