博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 中的MVC MVP MVVM
阅读量:5231 次
发布时间:2019-06-14

本文共 744 字,大约阅读时间需要 2 分钟。

app架构是一种开发方案

首先就是关于Model层的理解:

我的理解:Model层是属性和获取这些属性方法的集合。

比如在Android里,数据库里的数据是Model层,ORM框架也是Model层,假如要进行搜索操作,那么搜索的条件不属于Model层,以及搜索后所对数据进行的预处理也不是Model层.

其实这两种不属于

 

 

在Android中:

默认的开发模式是MVC的 其中Activity是Controller,xml文件和自定义的控件的是View.而那些网络请求操作的Network类是Model,然后Network请求的回调接口里面直接更新View属性。

然后为了解决VC之间的耦合,将上面Network回调接口改成不直接更新View,而是交给Presenter来中转一下,同样,在View点击时也是先交由Presenter来中转,这样的开发模式就是MVP。

此时M与V完全解耦,既可以将View层完全重构而无需担心Model层需要重新更改测试,也可以将Model层实现改为另一种方式,不用考虑View的问题。

而MVVM也是对MVC的一种改进,它也是讲View与Model解耦,但是形式不一样,需要注意的是需要有一个ViewModel框架来支撑View和ViewModel的交互。而ViewModel层的作用也就是业务逻辑,什么时候绑定一个View什么时候解绑,然后业务逻辑交给Model层来做。

 

需要注意的事,有时候业务逻辑很难区分,这时候就要根据项目确认哪些是通用的东西,可以作为Model层,哪些是只有这个页面才会用到的放到业务逻辑层。 这跟个人对整体的把控和项目经验有关。

 

转载于:https://www.cnblogs.com/vete-l/p/8601032.html

你可能感兴趣的文章
Nginx配置文件(nginx.conf)配置详解1
查看>>
linux php编译安装
查看>>
name phone email正则表达式
查看>>
721. Accounts Merge
查看>>
OpenCv-Python 图像处理基本操作
查看>>
「Unity」委托 将方法作为参数传递
查看>>
重置GNOME-TERMINAL
查看>>
redis哨兵集群、docker入门
查看>>
hihoCoder 1233 : Boxes(盒子)
查看>>
团队的绩效评估计划
查看>>
oracle中anyData数据类型的使用实例
查看>>
C++对vector里面的元素排序及取任意重叠区间
查看>>
软件测试——性能测试总结
查看>>
12.4站立会议
查看>>
Java Concurrentmodificationexception异常原因和解决方法
查看>>
客户端访问浏览器的流程
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>
c++||template
查看>>
[BZOJ 5323][Jxoi2018]游戏
查看>>
编程面试的10大算法概念汇总
查看>>