对MVC和MVP的理解

2017-07-06  本文已影响0人  社保吧

一、MVC

1、M:model层,数据交互层

2、V:视图层,展示界面

3、C:控制层,一般指activity或者fragment

优点:控制器c(activity或者fragment)发出指令,数据操作在model层,耦合性降低

缺点:视图层v是xml布局,很少做业务逻辑,这样控制器(activity或者fragment)
既充当了控制层c,又充当了视图层v,代码还是会比较臃肿,v和m的耦合性高

二、MVP

1、M:model层,数据交互层

2、V:界面的业务处理(activity或者fragment界面的业务处理,比如获取输入框的账号密码等)

3、P:activity或者fragment通过p发出指令,比如登录按钮发出的登录指令

举个登录的案例




LoginActivity点击登录按钮,

实例化一个Presenter,LoginPresenter loginPresenter=new LoginPresenter(this) (this代表LoginActivity,LoginActivity是Loginview接口的实现类,Loginview定义了获取账号密码的方法),

调用loginPresenter.login()(就 可以通过传递过来的loginview对象获取账号密码去登录请求了),

login()通过loginModel去做数据交互,交互结果通过OnLoginListener接口回调给loginPresenter,

loginPresenter收到回调结果后,调用loginview对象定义的toast、跳转等方法。

这样Activity就只充当了发出指令,界面业务处理的调度者,Presenter作为连接View和Model的桥梁,View和Model没有直接联系,完全解耦

上一篇 下一篇

猜你喜欢

热点阅读