Android之MVP架构

MVP(Model View Presenter)模式是由MVC模式发展而来的,在如今的Android程序开发中显得越来越重要。本篇文章简单讨论了MVP模式的思想。

啥是MVP

MVP模式的主要思想是将程序的业务逻辑从表现层分离出来,理想情况下,MVP模式可以使得相同的逻辑拥有完全不同且可互换的views。

为啥要用MVP

在Android实际开发过程中,我们会遇到这样的问题:Android中的activity与界面展示和数据访问机制耦合度非常高,既负责页面组件的展示,又负责处理业务逻辑。一个极端的例子就是混合适配器CursorAapter,它既是view的一部分,却又带有cursor,应该放在数据访问层。

为了应用程序具有好的扩展性和可维护性,我们需要有好的架构分层设计。假如以后我们不再从数据库中取数据,而是从网络中获取数据,那么我们只好重新做一个view出来。

MVP分层架构可以使views与数据源相互分离,将业务逻辑从activity中分离出来,它将应用程序至少分为三个不同的层次,从而可以分开独立地调试程序。

怎么用MVP

MVP的架构并不是很死板的,不同的开发人员可以根据自己工程的需要,将MVP的思想运用在自己的项目中。

The presenter

Presenter作为View层和Model层的中间层,它负责根据业务逻辑从model层中检索数据并将其格式化,返回给View层。但是,它不像传统的MVC那样,它还负责响应你与View的交互。

The View

view层常常由activity来实现(也可以使Fragment,View等),它往往持有一个presenter的引用。通常情况下,通过引用注入的方式DI,可以完美地将presenter提供给view层调用。(例子Dagger)View层所要做的就是,通过该引用来调用presenter中的方法来完成对用户在界面操作的相应。

The model

model层是用来完成数据的提供服务。在一个分层架构良好的应用程序中,model层仅仅是作为业务逻辑层访问数据的一个入口。文章:Uncle Bob clean architecture

?

总结

在Android中将业务逻辑与界面分离并不是一件很容易的事儿,通过MVP的架构思想,我们试图减少activity中的代码量,这样做会使得我们的程序扩展性和可维护性更好。GitHub上关于MVP有一个很好的例子an MVP example on Github

时间: 2024-11-15 10:29:33

Android之MVP架构的相关文章

Android官方MVP架构解读

综述 对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的.而对于Android应用的开发中本身可视为一种MVC架构.通常在开发中将XML文件视为MVC中的View角色,而将Activity则视为MVC中的Controller角色.不过更多情况下在实际应用开发中Activity不能够完全充当Controller,而是Controller和View的合体.于是Activity既要负责视图的显示,又要负责对业务逻辑的

Android官方MVP架构示例项目解析

前段时间Google在Github推出了一个项目,专门展示Android引用各种各样的MVP架构,算是官方教程了.趁着还新鲜,让我们来抛砖引玉一探究竟,看看在Google眼里什么样算是好的MVP架构. App架构在Android开发者中一直是讨论比较多的一个话题,目前讨论较多的有MVP.MVVM.Clean这三种.google官方对于架构的态度一直是非常开放的,让开发者自主选择组织和架构app的方式,期望能留给开发者更多的灵活性. 由于没有一套权威的架构实现,现在很多App项目中在架构方面都有或

android MVP——mvp架构的应用和优化

MVP架构在android还是很好用的.我也在试着将mvp用在项目中. 下面我就来说说mvp模式的应用和优化. mvp模式的概念 MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示. 比较 mvc: 1,在MVC里,View是可以直接访问Model的,View里会包含Model信息,不可避免的还要包括一些业务逻辑. 2,Model不依赖于View,但是View是依赖于Model. 3,有一

MVP架构-Android官方MVP项目和响应式MVP-RxJava项目架构分析对比解读

介绍 MVP这个架构一直是Android开发社区讨论的焦点,每个人都有自己的分析理解众说纷纭.直到GitHub上Google官方发布用MVP架构搭建的项目.感觉是时候分析了. MVP架构简介 这不是本文重点,所以摘抄自李江东的博文 MVP架构简介 对于一个应用而言我们需要对它抽象出各个层面,而在MVP架构中它将UI界面和数据进行隔离,所以我们的应用也就分为三个层次. View:对于View层也是视图层,在View层中只负责对数据的展示,提供友好的界面与用户进行交互.在Android开发中通常将A

MVP架构在xamarin android中的简单使用

好几个月没写文章了,使用xamarin android也快接近两年,还有一个月职业生涯就到两个年了,从刚出来啥也不会了,到现在回头看这个项目,真jb操蛋(真辛苦了实施的人了,无数次吐槽怎么这么丑),怪自己太年轻了,还好是给指定行业的人使用. 重新学习思考之后,再看自己在项目中的某些实现的代码,的确不尽人意,甚至想骂自己. 项目经常改,改来该去,代码一直增加,一个fragment也没什么功能,接近1000行的代码,用region括起来,开看起来还挺整齐的,找的时候就凉了.究其原因,没有一种模式,所

Android开发中的MVP架构(转)

写在前面,本博客来源于公众号文章:http://mp.weixin.qq.com/s?__biz=MzA3MDMyMjkzNg==&mid=402435540&idx=1&sn=1cd10bd9efaac7083575367a8b4af52f&scene=1&srcid=0910ARzPpBvVYPI1NDBZnixa#wechat_redirect 最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解MVP和DDD,但是我们的新项目

Android中的MVP架构

Android应用的MVC架构,Activity往往充当了View和Control双重角色,造成代码耦合性较强.怎样将View和Control解耦呢,可以使用MVP架构(Model.Control.Prestener)将Activity的View和Control彻底分离,不说废话了直接上代码吧! github: https://github.com/Allin1579/Allin-android 以Activity为例,Fragment的原理相同: View:我们将Activity看作一个单纯的

Android中的MVP架构初探

说来惭愧,MVP的架构模式已经在Android领域出现一两年了,但是到今天自己才开始Android领域中的MVP架构征程.闲话不多说,开始吧! 一.架构演变概述 我记得我找第一份工作时,面试官问我"android是否属于MVC架构模式,简述一下".确实,Android的整体设计结构就是MVC的设计模式,在J2EE的开发中,使用的也是MVC模式,MVC模式是一个经典,经历了几十年的考验.Android项目中的MVC架构: View:是应用程序中处理数据显示的部分,对应于layout文件下

Android MVP架构分析

App架构在Android开发者中一直是讨论比较多的一个话题,目前讨论较多的有MVP.MVVM.Clean这三种.google官方对于架构的态度一直是非常开放的,让开发者自主选择组织和架构app的方式,期望能留给开发者更多的灵活性. 由于没有一套权威的架构实现,现在很多App项目中在架构方面都有或多或少的问题.第一种常见问题是没有架构,需求中的一个页面对应项目中的一个activity或一个fragment,所有的界面响应代码.业务逻辑代码.数据请求代码等等都集中在其中.第二种常见的问题是架构实现