瞎扯
要来来一套.
MVVM,MVP都写了,再来写MVC
MVC的概念
我印象中MVC是由j2ee,延伸到android这边来的
道第一批搞安卓的人,几乎都是java转过来的,
记得15年,这东西面试还是经常问的.
大家都知道,M是model,V是View,C是Controller
反正不管怎么变,M和V是不变的.
那么为什么还要分MVVM,MVP,MVC呢.
对MVC的误解
设计模式中的六大原则就有一点,
单一职责原则
意思就是.把一件事情做好就够了.
但是在写android的时候.
activity这东西,你还真不好去确定职责.
而且我印象中,几乎没怎么写Controller.
activity放在j2ee中,那就是jsp.这就造成activity代码又长又臭.
所有的操作逻辑,View特性,控制,全放在一起了.
由于j2ee中,C就是Serlvet接受响应,做出响应,获取请求,响应model.
但是在android中这套就有点不现实了.
其实j2ee也是.jsp几乎消失了吧.
见过几千行的Activity.一个方法几百行.不得不说.码农生涯不易.
从后台的角度看
M就是数据库这些
C就是Serlvet.也就是处理接口请求的
V是什么,V可以是JSP,也可以是前端H5页面,更可以是安卓.IOS
从安卓的角度看
照着j2ee那种设计,其实不合适.
为什么?
因为后台更多的是关心,M和C.
对于V.几乎不去关心.让后台写jsp.写多了也骂娘.
但是我们写安卓,可以这样不关心V吗?
V就只是一个XML? 当然不是.还有更多的UI处理逻辑.条件,
所以照搬过来.是很难受的.
因为我们写V占的比重太多.其中还有继承,抽象.
M我们反正不怎么关心,
所以我们按照J2ee的MVC.去写,C真的需要吗?不是很需要.
所以
诞生了MVP
把每一个都分工明确起来.
View就只处理View.表现自己的特点,特征
Model就只处理数据,保存数据
P做为真正意义上的控制层.V必须通过他才能得到数据.
职责单一化.分工明确.
V因为可以没有业务代码.可以复用.
M也因为没有业务代码,也可以复用.
交流群:493180098,这是个很少吹水,交流学习的群.
APP开发维护咨询群 : 492685472 ,承接APP迭代.开发维护.咨询业务,付费快速解决问题.