浅谈MVC与MVP的区别

0.介绍

接触MVP已经很久了,在上一家公司也有用到过。但是今年换完公司以后,看到这家公司的代码,真的是要疯掉的感觉。基本上全部都是一个activity搞定全部逻辑,加上冗余的封装,很难去维护的一个项目。所以就准备了一下,给几个Android的同事分享一下我使用MVP的心得。

1.MVC与MVP的区别

1.MVC

首先说一下MVC。在我看来,我们可以把原有的写法,也就是Android最原始的写法,一个activity+XML+Bean,看做是最简单意义上的MVC。当然,我们也可以延伸一下,认为网络请求或者说其他的复杂数据操作当做bean。也就是activity+XML+(Bean+Logic),看做是一个MVC。
在这样的架构当中,xml做为View来进行操作,会发现他的能力很弱,并不能做太多的事情,需要activity来进行辅助操作。所以我更倾向于把activity理解为V和C的集合来看待。
由于这些原因,我们的项目中都难以避免的出现了,activity太过于臃肿,从而导致的代码难以阅读,难以维护现象的产生。在这个基础上演化出来的MVVM框架,我认为能力依然非常的弱,只是加强了XML做为一个View的功能,本质上还是一个MVC。(我们这里讲的MVVM只指以dataBinding实现的MVVM)

2.MVP

MVP是指Model+Presenter+View的实现方式。在这里,activity只作为View来进行操作。也就是(Bean+Logic)+Presenter+(activity+xml)的实现方式。
让数据和View真正的分离,降低了耦合性。同时,弱化了activity的作用,让activity真正的作为一个View的单一功能来进行操作。
当然,MVP也是从MVC的基础上演化而来的。初期开始感觉写起来会有一些不适应,或者说有一些麻烦。但慢慢的,我感觉离不开他了。通过MVP,能够推进项目内成员的代码规范性,以及各个方法之间的条理性。从而使整个项目更加方便维护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值