美文网首页
框架模式之 MVP

框架模式之 MVP

作者: Kevin_小飞象 | 来源:发表于2019-06-18 17:13 被阅读0次

简介

MVP 模式是 MVC 模式的一个演化版本,MVP 全称 Model-View-Presenter。目前 MVP 在 Android 应用开发中越来越重要了。

设计图

mvp.png

优点

  • 模型与视图完全分离;
  • 可以更高效地使用模型,因为所有的交互都发生在一个地方—— Presenter 内部;
  • 一个 Presener 可以用于多个视图(View),而不需要改变 Presenter 的逻辑。视图(View)的变化比模型(Model)的变化更频繁的多 ,所以这样超级方便;
  • View 可以进行组件化。在 MVP 当中,View 不依赖 Model。这样就可以让 View 从特定的业务场景中脱离出来,可以说 View 可以做到对业务逻辑完全无知。它只需要提供一系列接口提供给上层操作。这样就可以做高度可复用的 View 组件。
  • 更容易单元测试

缺点

  • 由于对视图的渲染放在了 Presenter 中,所以视图 View 和 Presenter 的交互会过于频繁。特别是需要修改视图的时候,Presenter也需要跟着修改,很麻烦。
  • Presenter 中除了业务逻辑以外,还有大量的 View->Model,Model->View的手动同步逻辑,造成 Presenter 比较笨重,维护起来会比较困难。
  • 其实总的来说就是结构很清晰,业务逻辑也很明白,耦合低,但是就是自己写的麻烦,Presenter 不好维护,工作量太大,太笨重,有点像 MVC 中的 Activity 了,职责太多了。

实例

androidmvp

小结

通过引入接口 BaseView,让相应的视图组件如 Activity,Fragment 去实现BaseView,实现了视图层的独立,通过中间层 Preseter 实现了 Model 和 View 的完全解耦。MVP 彻底解决了 MVC 中 View 和 Controller 傻傻分不清楚的问题,但是随着业务逻辑的增加,一个页面可能会非常复杂,UI 的改变是非常多,会有非常多的 case,这样就会造成 View 的接口会很庞大。

相关文章

网友评论

      本文标题:框架模式之 MVP

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