安卓作业--第四篇

来源:互联网 发布:python类和对象 编辑:程序博客网 时间:2024/06/09 16:57

MVP模式之TheMVP学习笔记(注:标红的文字解释是重点

原文博客链接:http://blog.kymjs.com/code/2015/11/09/01/?utm_source=tuicool&utm_medium=referral

GitHub链接:https://github.com/kymjs/TheMVP


什么是MVP

MVP(Model-View-Presenter)是一个将后台任务和activities/views/fragments分离的方法,让他们独立于绝大多数跟生命周期相关的事件。这样应用会变得更加简单,应用的稳定性提升,代码也变得更短,可维护性增加。
View是指显示数据并且和用户交互的层。在安卓中,他们可以使一个Activity,一个Fragment,一个android.view.View或者一个Dialog
Model是数据源层。比如数据库接口或者远程服务器的API(Application Programming Interface)
Presenter是从Model中获取数据并提供给View层,Presenter还负责处理后台任务。


为什么需要MVP

 
在Android开发中,Activity并不是一个标准的MVC模式中的Controller(
C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层),它的首要职责是加载应用的布局和初始化用户界面,并接受并处理来自用户的操作请求,进而作出响应。但是,随着界面及其逻辑的复杂度不断提升,Activity类的职责不断增加,以致很容易变得庞大而臃肿。 
越小的类,bug越不容易出现,越容易调试,更容易测试,我相信这一点大家是都赞同的。在MVP模式下,View和Model是完全分离没有任何直接关联的(比如你在View层中完全不需要导Model的包,也不应该去关联它们)。 
使用MVP模式能够更方便的帮助Activity(或Fragment)职责分离,减小类体积,使项目结构更加清晰。



TheMVP原理介绍

与传统androidMVP不同(原因上文已经说了),TheMVP使用Activity作为Presenter层来处理代码逻辑,通过让Activity包含一个ViewDelegate对象来间接操作View层对外提供的方法,从而做到完全解耦视图层。如下图: 
TheMVP架构图









向一位合格的leader奋斗


0 0
原创粉丝点击