1 .前言
近年来,安卓体系结构的模型有很多。 众所周知的有MVC、MVP和MVVM。 目前,安卓市场使用最多的应该是MVP架构。 MVVM与DataBing配合使用看起来很方便,但一般公司很少使用。 其实,模式就像我们的个人习惯,思考码怎么放比较方便,慢慢形成了标准化的模式,好的码模式往后放,更容易和团队分工合作。 但是,说实话,刚接触到这些模式的时候,感觉代码的类变多了,但是逻辑上确实很简洁。 我们建议您不要为体系结构构建体系结构,而是切实寻求现实。
2.MVP与MVC的比较
当然,每种模型结构都有其优缺点。 这里借用弘扬大神的两句话
View :与布局文件对应的模型:业务逻辑和实体模型controllor:Activity对应的看起来确实是这样,但是如果仔细考虑该View与布局文件对应的情况,就会发现实际上实际上,关于该布局文件内的数据绑定的操作,事件处理的代码全部在Activity中,引起了Activity两者
MVP的出现是,view层无法直接与模型层进行交互。 Presenter作为中间的桥梁,连接view和模型,完全断开view和模型的连接,避免Activity代码变大。
3 .请求服务器登录的示例
我读过很多前辈的文章,在说明mvc模式时,基本上是以登录为例,但几乎都是用本地数据进行模拟的,所以我想很多人都会有同样的疑问。 网络请求部分的代码到底交给谁,Model? 还是Presenter? 是的。 定义用户登录时,View层的界面(或activity (或fragment,统称为activity ) )相对于View层的状态有何变化。
首先,用户点击登录获取用户输入的用户名和密码,在登录过程中,服务器返回信息,调用toast,关闭dialog,需要定义view层的这五个状态接口
模型层需要用户登录的方式、用户名和密码(map )以及回调界面。
这个例子使用了自己封装的Volley框架。 封装如下所示。 (
activity要求登录时,直接在Presenter上操作,所以我们Presenter实现方法有login方法,直接调用view层的接口和模型的接口来实现。
在view层,即对应的activity中,继承view层的接口,在Presenter中操作其中的方法即可。
这样,实现了确定用户注册的网络请求后,view中的代码就变得简洁了,代码也就更容易维护了。
微信公众号:
如果有不足的地方,请多多关照。