Android 中的MVC MVP MVVM

Posted lightverse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 中的MVC MVP MVVM相关的知识,希望对你有一定的参考价值。

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层,哪些是只有这个页面才会用到的放到业务逻辑层。 这跟个人对整体的把控和项目经验有关。

 

以上是关于Android 中的MVC MVP MVVM的主要内容,如果未能解决你的问题,请参考以下文章

Android中的MVC,MVP和MVVM

框架模式MVC与MVP在Android中的应用

MVC/MVP在android中的实践

Android 中的MVC MVP MVVM

Android官方MVP架构解读

浅谈Android中的MVP