美文网首页
项目MVP模式初体验

项目MVP模式初体验

作者: 权威菜鸟 | 来源:发表于2020-09-14 11:28 被阅读0次

进入苏宁一个月了,刚做完苏宁易购的以旧换新功能,在这里总结一下当前项目的MVP模式。

mvp简介

mvp的全称为Model-View-Presenter,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。具体介绍就不复制了,参考网上大佬的介绍或者百度百科都行。
先说下mvp的逻辑,MVP可以分成model,view,controller,present四个部分,其中view负责展示,present负责数据处理,controller负责流程,model辅助上面三个进行交流和传值。

案例

这么写太笼统了,还是写个demo来解释吧。

打个比方,我现在有个需求,需要依次请求三个接口,然后将接口的数据整理成一个字符串,展示在页面的label上。
如果使用mvc模式的话,我会在controller中写3个请求,依次调用并且解析数据,这样就导致所有的逻辑都集中在controller中,controller代码会很多。同时,如果服务端某个接口没完成,我们需要修改许多地方,甚至可能需要修改整体流程,来进行测试数据模拟。
现在换成mvp模式,我会将请求和数据整合封装成present中的单独方法,这样在controller中就只需要进行方法调用即可。同时,如果需要进行数据测试,只需要修改阻塞的接口方法和数据整合方法即可。

@implementation MVPPresent

-(void)request1:(requestVoidBlock)block{
  //......
  block();
}
-(void)request2:(requestVoidBlock)block{
  //......
  block();
}
-(void)request3:(requestVoidBlock)block{
  //......
  block();
}

-(MVPTestModel *)requestResult{
  self.requestModel.text = @"123";
  return self.requestModel;
}

@end
- (void)viewDidLoad {
  [super viewDidLoad];
  // Do any additional setup after loading the view.
  self.view.backgroundColor = [UIColor purpleColor];
  [self.view addSubview:self.mainView];
  __weak typeof(self) wself = self;
  [self.present request1:^{
      [wself.present request2:^{
          [wself.present request3:^{
              wself.mainView.model = [wself.present requestResult];
          }];
      }];
  }];
  
}

优点

  • 在我看来,mvp最大的优点是其解藕性

  • UI集中在view中,流程集中在controller中,数据处理集中在present中,这样遇到修改需求或者需要测试数据的时候,很容易找到需要修改的位置并修改。

  • 而且非常易于复用,无论是present还是view都可以进行复用。这样在多个页面接口一致的情况下,可以节省大量的代码量。

总结+吐槽

第一次写博客,感觉写的很烂但又不知道该怎么改,先这样吧,等我熟练了再详细写一篇设计模式吧。大神请轻喷😊

最后附上demo地址:https://github.com/zdz00003/MVPDemo

相关文章

  • 项目MVP模式初体验

    进入苏宁一个月了,刚做完苏宁易购的以旧换新功能,在这里总结一下当前项目的MVP模式。 mvp简介 mvp的全称为M...

  • Android MVP设计模式总结

    MVP设计模式从提出至今也有不短的时间了,大家应该或多或少使用过MVP模式开发项目,或者至少听说过MVP设计模式,...

  • MVP设计模式和基本的模板

    MVP设计模式和基本的模板 这个是我的项目结构 对比于MVC模式,MVP无疑更适合Android的开发,MVP在层...

  • Android开发之MVP模式

    前言:Android开发中有很多的设计模式,MVP模式无疑是现在最流行的模式之一。MVP模式有效的降低了项目的复杂...

  • Kotlin+MVP架构仿开眼App

    项目介绍 最近学习了一下kotlin和MVP架构模式,但苦于无处施展,就想着自己写个项目玩玩。整体架构MVP+Re...

  • iOS重构实践

    项目简介和MVP模式重构 项目简介 首先简单介绍一下项目情况。我们原有项目的架构是比较标准的MVC模式,也是苹果官...

  • Android交接文档

    项目简介: 项目实现的功能,目标 开发模式: MVP,MVC,MVVM等。 项目类型: 是否是混合开发等 开发环境...

  • MVP简单尝试

    MVP模式解析 标签: Android 架构 MVP MVP模式的核心思想 MVP将Activity中的U...

  • MVP篇三,MVP模式在Android上的应用

    1、MVP模式的基本介绍 参见: MVP模式1,MVP模式的原理 http://www.jianshu.com/p...

  • 使用MVP模式重构代码

    之前写了两篇关于MVP模式的文章,主要讲得都是一些概念,这里谈谈自己在Android项目中使用MVP模式的真实感受...

网友评论

      本文标题:项目MVP模式初体验

      本文链接:https://www.haomeiwen.com/subject/hubaektx.html