对于MVP模式的一点理解

对于MVP模式的一点理解

1.

mvc

先来聊一聊我对MVC模式的理解

Model:类似于Javabean以及对数据的操作
View:就是layout.xml布局的文件
Controller:Activity文件

我们一般的操作就是在Activity文件里面操作Model层的数据,然后再更新View的视图界面。这样主要的操作就全部集中在Activity里面,软件功能简单还好说,但是一旦功能多了起来,Activity里面的代码就会很长,看的让人头疼。我曾经在一个项目中看别人的代码,这是一个封装的Android自带的播放器,因为牵扯到的功能很多,导致那个Activity代码异常的长。看的我头都快要爆炸了,当然效果也不是很好。

因此我开始学习MVP模式,MVP模式的学习刚开始学习起来,感觉很奇怪,不知道为什么要那样写?只是知道写了好多的接口。

有人说Activity它直接操作View的显示而且也起到Controller的作用,所以它其实是View层和Controller层的混合。我感觉这样说也有道理。

MVP相对于MVC的优点

  1. Activity的职责更为明确
  2. 代码结构更清晰,更容易维护
  3. 方便单元测试
  4. 根除MVC中内存泄漏的问题

MVP核心思想:

  • MVPActivityUI逻辑抽象成View接口
  • 把业务逻辑抽象成Presenter接口
  • Model还是原来的Model
MVP

MVPMVC的升级版,首先Model层并没有变化,其中View层就变成了Activity文件,Presenter就变成了实际的控制器,执行具体的逻辑操作。

上面的图我们也可以看出ViewModel层并没有什么联系,它们是通过Presenter层作为桥梁来进行交互的。

一般的写法就是把关于界面操作的方法提取出来作为借口,View层(Activity)来实现这个接口,Presenter层也是提取出接口然后具体的类来实现。同时在Presenter层里面同时实例化View层和Model层的对象,然后这样就实现了桥梁的功能。

你可能感兴趣的:(对于MVP模式的一点理解)