美文网首页Android实用技术
2019日更挑战(十二),Android-聊聊MVC

2019日更挑战(十二),Android-聊聊MVC

作者: Jlanglang | 来源:发表于2019-01-12 21:13 被阅读7次

    瞎扯

    要来来一套.
    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也因为没有业务代码,也可以复用.

    更符合java的设计原则.如果MVC也照着上面说的一样,其实就是MVP了.


    您的喜欢与回复是我最大的动力-_-
    交流群:493180098

    相关文章

      网友评论

        本文标题:2019日更挑战(十二),Android-聊聊MVC

        本文链接:https://www.haomeiwen.com/subject/vpncdqtx.html