android 学习mvc 和 mvp 和 mvvm参考项目
githup地址:https://github.com/ivacf/archi
阿尔奇
此存储库展示并比较可用于构建Android应用程序的不同架构模式。完全相同的示例应用程序使用以下方法构建三次:
- 标准的Android:布局,活动/片段和模型的传统方法。
- MVP:模型视图演示者。
- MVVM:模型视图ViewModel与数据绑定。
应用程序
示例应用程序显示给定用户名的GitHub公共存储库列表。点击其中一个将打开一个存储库详细信息屏幕,在那里可以找到有关回购的更多信息。该屏幕还显示有关存储库所有者的信息。

使用的库
- AppCompat, CardView and RecyclerView
- Data Binding (only MVVM)
- RxJava & RxAndroid
- Retrofit 2
- Picasso
- Mockito
- Robolectric
标准的Android
该/appdirectoy包含遵循传统的标准Android的办法实施。这是一对布局文件,两个活动和模型。该模型是完全的三种实现相同的,它包含:Repository,User和改装服务(GithubService)。
采用这种方法,活动负责调用GithubService,处理数据和更新视图。他们的行为就像MVC中的一个控制器,但有一些额外的责任应该成为观点的一部分。这个标准体系结构的问题是活动和片段可能变得相当大,很难测试。因此,为什么我没有为这个案例写任何单元测试。
MVP - 模型视图演示者
在/app-mvp这里你会发现这个示例应用程序遵循这个模式。当使用mvp时,Activities和Fragments成为视图层的一部分,他们将大部分工作委托给演示者。每个活动都有一个匹配的主持人,通过主持人访问模型GithubService。当数据准备好显示时,他们也通知活动。单元测试演示者变得非常容易通过嘲笑视图层(活动)。
MVVM - 模型视图ViewModel
由于数据绑定库的发布,这种模式最近开始流行起来。你会发现在执行/app-mvvm。在这种情况下,ViewModel通过数据绑定从视图请求时从模型中检索数据。有了这个模式,Activities和Fragments变得非常轻便。此外,由于ViewModel从视图中分离,所以写单元测试变得更容易。
阅读代码需要参考的资料:
Android Studio 中 Gradle 依赖的统一管理
android 学习mvc 和 mvp 和 mvvm参考项目的更多相关文章
- android中MVC,MVP和MVVM三种模式详解析
我们都知道,Android本身就采用了MVC模式,model层数据源层我们就不说了,至于view层即通过xml来体现,而 controller层的角色一般是由activity来担当的.虽然我们项目用到 ...
- Android之MVC、MVP、MVVM
本文将详细阐述以下MVC.MVP.MVVM三种理念的定义 MVC MVC全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个 基本部分:模型(Model ...
- Android中MVC、MVP、MVVM具体解释
前言 今天有时间就刚好有想写关于这几个名词.对于我来说.事实上这么多名词.思想归根究竟就是要依据项目实际.人员配置来做合理优化,既不能纸上谈兵.又不能畏惧不前.那么合理分阶段架构和完好代码才是关键,本 ...
- 认清Android框架 MVC,MVP和MVVM
编者按:现在很多时候,我们都是面向搜索(或 Google 或百度).GitHub 编程,那么,在早期没有互联网的情况下,该如何学习编程,成为一名真正的开发者?亦或是作为一名小白,如何进入互联网编程时代 ...
- Android App的架构设计:从VM、MVC、MVP到MVVM
随着Android应用开发规模的扩大,客户端业务逻辑也越来越复杂,已然不是简单的数据展示了.如同后端开发遇到瓶颈时采用的组件拆分思想,客户端也需要进行架构设计,拆分视图和数据,解除模块之间的耦合,提高 ...
- 学习设计模式之MVC、MVP、MVVM
引言:认真学习了下广义MVC模式下前端怎么写,狭义的MVC其实是有一个变化过程:MVC MVP MVVM,网上看了很多的关于这方面的介绍,以前总是将视图数据逻辑写一个模块,最近尝试分开并用组件式的开发 ...
- Android开发模式之MVC,MVP和MVVM的简单介绍与区别
相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可能对于区分它们三个都有困难,更别说在实际的项目中应用了,有些时候 ...
- Android 程序架构: MVC、MVP、MVVM、Unidirectional、Clean...
摘选自:GUI 应用程序架构的十年变迁:MVC.MVP.MVVM.Unidirectional.Cleanhttps://zhuanlan.zhihu.com/p/26799645 MV* in An ...
- MVC、MVP及MVVM之间的关系
介绍 写这篇随笔完全是为了加深自己的印象,毕竟写比看能获得得更多,另外本人对这三种模式的认识还是浅薄的,有待在以后的工作学习中有更深入的理解,因此不免会有误解,这里推荐大家阅读廖雪峰关于MVVM的介绍 ...
随机推荐
- SQL Server 2008 R2 SP3 and SQL Server 2008 SP4 are now available!
时间 2014-10-02 00:00:00 SQL Server Team Blog 原文 http://blogs.technet.com/b/dataplatforminsider/arc ...
- Google Xpath Helper
下载方法: 1. 访问http://chrome-extension-downloader.com/ 2. 把https://chrome.google.com/webstore/detail/xpa ...
- ASP.net的身份验证方式有哪些?
[转] ASP.net的身份验证方式有哪些?分别是什么原理? Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验 ...
- Solr 创建core 从MySql数据库中导入数据
一.创建数据表和数据 在MySql数据中创建mysolrInfo表, 创建字段 id 主键,自动增加 pname :姓名 age :年龄 addtime :增加时间 增加几条数据 二.创建core 当 ...
- 通过java api提交自定义hadoop 作业
通过API操作之前要先了解几个基本知识 一.hadoop的基本数据类型和java的基本数据类型是不一样的,但是都存在对应的关系 如下图 如果需要定义自己的数据类型,则必须实现Writable hado ...
- ant 报 make sure you have it in your classpath
检查build.xml的配置 build.xml配置出错,导致的这个问题
- ASP.NET MVC生成安全验证码
html部分: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- Windows无法删除文件 提示找不到该项目怎么办
1 如图所示,我想要删除某个文件,提示如图所示,一般用360的强力删除也不管用. 2 在桌面新建一个文本文档,并输入以下内容.保存为bat格式(比如Delete.bat).然后把这个删不掉的文件拖 ...
- URL相对路径和URL绝对路径
经常在页面中引用图片,html页面等,自己常常弄错相对路径和绝对路径,今天写下此文总结一下. 直接举例说明吧. 在 D:\例子\html下有这么几个文件和文件夹 1.若引用的资源和本身在 ...
- foreach和volist的区别
foreach和volist的区别 1.foreach标签foreach标签用于循环输出:foreach(name,item,key)name(必须):要输出的数据模板变量item(必须):循 ...