您好, 访客   登录/注册

浅析MVP设计模式

来源:用户上传      作者:宁君宇 陈森

  摘 要:当下MVP设计模式大量的应用于移动端安卓应用程序的开发架构中,该设计模式的引入使得安卓程序的开发降低了耦合,增加了程序的原子性,方便了程序测试,增强了程序的稳定性。本文首先介绍了什么是MVP设计模式,之后列举了MVP和MVC模式的区别,然后展示MVP设计模式在安卓开发中的应用,最后分析了MVP设计模式的优缺点及该如何选择设计模式。
  关键词:安卓开发;MVP设计模式;低耦合
  
   随着时代的不断前进,移动互联网以其快捷、经济、方便等特点,悄然走入人们的生活。移动应用安卓端的开发作为其中一个重要部分也在蓬勃发展,在安卓移动应用开发中,传统的MVC设计模式的缺点被不断的放大,影响了程序开发的效率和稳定性,这时MVP设计模式走入了安卓开发的视野之中。
  1 MVP设计模式
  MVP,全称 Model-View-Presenter。MVP是在MVC的基础上变化而出的,他们的思想有一些相通的地方。在MVP设计模式中,Model层只需要专注于数据的处理,View层专注于界面的展示,及生命周期的控制,而Presenter层负责全部业务处理,提供View层想要的数据,成为View层与Model层之间的桥梁。
  2 MVP和MVC模式的对比
  MVP和MVC模式的结构图,如图1所示:
  
  由上图可看出,MVP模式和MVC模式的主要区别有:Presenter的出现成为了View和Model层沟通的桥梁,降低了它们的直接交互,从而降低View和Model之间的耦合度,增加了程序的可维护性和可测试性。Presenter承担了更多的工作,内部的复杂度要大于Controller。View层更加的纯粹,不负责业务逻辑,专注于界面的展示,在安卓的开发过程中需要负责生命周期的控制。
  3 在安卓开发中的应用
  安卓开发之前采用的是MVC模式,在该模式下,安卓开发中的Activity和Fragment即属于V层也属于C层,承担两层的工作,且都需要处理各种生命周期相关的业务,导致在复杂的业务下,Activity和Fragment会非常的臃肿,代码结构不清晰,维护起来也特别的困难。为解决这些问题,安卓开发引入了MVP设计模式,结构如图2所示:
  
   可以看到,在View与Model之间不直接沟通,降低了这两层之间的耦合度,中间的Presenter对上衔接View层的数据需要,对下衔接Model层的数据传送,中间处理具体的业务程序。结构更加的清晰,方便程序的编写和维护也方便进行单元测试。
  4 MVP设计模式的优缺点
  MVP设计模式的优点是:减低耦合,实现了Model与View 的真正分离,修改View而不影响Model。模块职责分明,层次分明,便于维护,多人开发首选。Presenter可复用,一个Presenter可以用于多个View,不用去改Presenter利于单元测试。模块分明,方便单元测试,而不用特意搭建平台,人工模擬用户操作等等耗时耗力的事情。
  缺点是:架构的引入在逻辑上清晰了,但代码量增加了很多,不利于小工程项目的开发和使用。
  由于Presenter层负责给View层提供数据,在View层需要数据较多的情况下,会导致Presenter层和View层之间的交互较为频繁,在一定程度上增加了他们的耦合度。
  5 总结
  本文首先介绍了什么是MVP设计模式,对比了MVC和MVP设计模式的区别,然后介绍了MVP设计模式在安卓应用开发中的使用及其优缺。移动应用的开发依然在不断的前进,新的设计模式也会层出不穷,没有完美的设计模式,只有符合自己业务的设计模式,所以研发人员一定要根据具体的业务选择适合自己开发模式。
  参考文献:
  [1]刘宇,蔡俊涛,赖顺桥,等.基于MVC和实体框架的道路照明智能管理系统[J].计算机与现代化,2015(10):64-68.
  [2]王念桥.应用MVP模式改进软件架构[J].计算机时代,2012(4):37-38.
  [3]邓志宏,张智,李建奇,等.基于MVP模式的进销存系统的软件架构设计[J].计算机与数字工程,2010,38(12):96-99.
  [4]葛管库.MVC模式下程序设计[J].软件,2013,34(2):49-51.
转载注明来源:https://www.xzbu.com/1/view-15266646.htm