Android 开发最佳实践教程——MVPBuilder

本文介绍了MVC和MVP两种设计模式的区别,重点讲解MVP模式如何帮助开发者解耦合界面与业务逻辑,通过实例说明MVP模式的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

教程希望让新手搭建一个简易的MVP框架,适合不知道从何开始的新手,本篇内容:

关于MVPBuilder

MVPBuilder 是笔者自己编写的一个快速开发教程,它的目的很简单,就是让新手可以在学习的过程中理解编程的思维,能够给读者带来解耦合的思考。这样的项目框架更多地类似于Maven构建工具的思想,约定优于配置。希望大家在开始一个新android项目不知道从何入手时,能够帮到大家。以下是项目的github地址,欢迎大家下载 —— [ MVPBuilder ]

MVC和MVP的简介

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。—— [ MVC ]

MVP全名是Model View Presenter,是模型(model)-视图(view)-控制器(presenter)的缩写,也是一种软件设计典范,笔者主要在android工程中接触和学习到。

上面都是一些理念性的东西,对MVCMVP的总结理解如下:
二者都有M,V,所以唯一不同的是C和P。在所有的软件系统中,其实都只有三个部分,第一个是用户能够看到的界面,即这里的说的View;第二个是所有软件都会对数据持久化也就是存到文件系统,存到数据库,姑且把Model理解为数据,所以M代表的不仅仅是一个静态的概念;第三个就是业务,是把用户的操作所产生对数据库的改变用程序逻辑编写出来的过程,其实就是两种模式中的C和P。

MVC和MVP

实践经验不多的同学会有疑问为什么有了MVC还要有MVP?既生瑜何生亮的感觉。

分析

我们一起来模拟场景,假设我们写了个登录页面,那么直接用android提供的mvc模式就是:xml布局文件(View),LoginActivity(Controller),User(Model)。那我们都怎么操作呢?用户操作,数据被改变了,activity响应改变然后执行登录业务,程序中的User数据也被改变了。看起来没什么大问题,那么现在如果是两个人在写这个功能,一个负责页面,一个负责逻辑,好了,两个人都要对activity进行编码,如果这是一个非常复杂的功能和界面,那activity岂不是两行界面代码,又插一段业务代码,然后又一段界面代码!

这就是MVP出现的原因,其实是为了解耦合,你写你的界面,我写我的业务,我不需要知道界面实现的细节,你也不需要知道业务实现的细节。我们只需要互相知道要做什么,对了,就是程序设计里最最核心的思想,抽象。那么我们只需要定义实现的接口名称,我是P你是V,那么你给我一个登录成功刷新界面的接口,我给你一个登录业务的接口(面向接口编程),这样就够了,这..说得那么简单,how?talk is cheap,show me the code!我想你一定是这样想的,继续关注MVPBuilder,希望它能够给入门的朋友带来启发,暂定每周日更新一篇。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值