框架模式之 MVP

简介

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 的接口会很庞大。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容