Android中的MVC和MVP模式的简单理解

      MVC模式:简单的说就是通过Controller的控制去操作Model层数据,并且返回给View展示.
MVC, 即Model-View-Controller;
Model: 数据层,负责处理业务逻辑,监听网络与数据库接口.
View   : 界面(UI层,xml布局或者其他继承View类的视图),显示来源于Model的数据.
Controller: 控制器(Activity和Fragment),传递用户交互和更新数据.(包括:键盘敲击、屏幕触摸、电话呼入等。)
        MVC典型例子的实现ListView/GridView/RecyclerView等.
        Android中最典型MVC是ListView,要显示的数据是Model,界面中的ListView是View,控制数据怎样在ListView中显示是Controller。
优点: 1. 数据层和视图层分离,这样视图层修改而不用重新编译模型和控制器代码..
          2. 重用性高---多个视图能共享一个model
 缺点: 1.Controller层会既是控制层又是view层,因为在xml中无法动态的去修改view,只能在Controller中去修改,这就造成了Actviity既是控制层又是view层.
           2. View层和Model层是相互可知的,两者之间存在耦合.
MVC工作原理:当用户触发事件的时候,view层会发送指令到controller层,接着controller去通知model层更新数据,model层更新完数据以后直接显示在view层上,这就是MVC的工作原理.

       MVP(是MVC模式的演化版,这里Activity和Fragment不再是Controller而仅仅是作为View层,所有用户事件的转发都在Presenter层处理.)
MVP 模式所做的事情很简单,就是将业务逻辑和视图逻辑抽象到接口中。
从图中看出,最明显的差别就是view层和model层不在互相可知,完全的解耦,presenter层充当了中介者,view层发出的事件传递到presenter层,presenter层去操作model层,并且将数据返回给view层,整个过程中view和model层没有任何关联,
优点: 1. 降低耦合度,实现了Model和View真正的完全分离,可以修改View而不影响Modle
         2. 模块职责划分明显,层次清晰
缺点: 逻辑复杂的页面,可能会有很多接口,维护接口的成本会很大.

http://download.csdn.net/download/xvzhengyang/10137891代码链接,登陆的小demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xvzhengyang

感谢,励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值