之前讲了MVC,MVP两种架构的设计框架。今天说一下MVVM架构设计模式。这里主要讲的是MVVM中各个层次的作用,作为一个面试的必知必会小记录。

View层:View层做的其实就是UI相关的工作。我们只在XML、Activity、Fragment当中写View层代码。而View层它其实是不做和业务层相关的事的。也就是说我们在Activity当中不写业务逻辑和业务数据相关的代码。

Model层:Model层主要的功能是提供数据接口给ViewModel层调用。它其中包括如网络请求的代码,本地文件或数据库读写的代码,还有实体Bean,以及如Retrofit框架的Service等。

ViewModel层:负责完成View与Model间的交互,负责业务逻辑。ViewModel层与View层做的事情完全相反,View层绝对不能做与业务逻辑有关的事,而ViewModel只能做与业务逻辑有关的事。ViewModel层与View层的协作是通过DataBinding完成的,即数据绑定。

Android中MVVM架构设计模式面试问题讲解相关推荐

  1. Android中常用的设计模式

    一:参考文档 先介绍参考文档(或许我们更容易明白):另记录本人可参考 QQ15 MobileSafe 两个Demo 有哪些在实际 Android 项目中用到的设计模式? Android开发中常见的设计 ...

  2. Android的MVVM架构的单Activity应用实践

    前言 谈Android架构大家很容易想到MVC.MVP和MVVM. 1.MVC 首先分析一下上面各层之前对应的Android代码,layout.xml里面的xml文件就对应于MVC的view层,里面都 ...

  3. Android中常用的设计模式一

    对于开发来说,设计模式是必不可少的,就像是一个项目的架海紫金梁,而且熟悉常用的设计模式可以有助于我们研读源码.好,废话不多说,开始介绍 1> 单例: 不想再说了,如果还有人不会,我叫他大爷. 大 ...

  4. Android MVVM架构设计模式,从DataBinding开始

    MVVM在android端已经出了很久了,但是还是比较少使用到,现在写Android架构设计的时候比较多使用的是MVP,以前在用Angularjs和Vue接触过双向数据绑定的使用和思想,所以看到MVV ...

  5. Android中opensl架构,Android OpenSL ES详解

    简介 NDK开发OpenSL ES跨平台高效音频解决方案.png OpenSL ES全称为Open Sound Library for Embedded Systems,即嵌入式音频加速标准.Open ...

  6. Android MVVM 架构应用实现

    以前项目中虽然也使用MVVM架构,但由于整体框架不是我自己搭建的,导致我对于MVVM架构的整体还是很不熟悉,所以这次就自己搭建并实现一次MVVM架构. MVVM架构使用的组件有ViewModel.Li ...

  7. 三级缓存和二级缓存的区别,浅谈Android消息机制原理,面试心得体会

    写在前面 为什么只看这一篇就够了? 现在CSDN.知乎.掘金上各路大佬层出不穷,他们身经百战.血洗杀场,总结出满满的求职干货.但同时也存在很多非良心的博主,要么活出了人类的本质,复读机一样到处转载:要 ...

  8. 【Unity游戏开发】Android中如何集成Unity3D项目

    涉及到的IDE Android studio 4.0.2版本 UnityHub 2.4.3版本 Unity 2019.4.14版本 环境配置 Android Studio环境配置 这个相信Androi ...

  9. 7年老Android一次操蛋的面试经历,挥泪整理面经

    看到还有很多程序员连面试流程都没有彻底弄清楚,今天,我们以阿里为例,来聊聊互联网大厂的面试流程和过程! 本篇主要还是聊聊社招的面试过程!阿里以及其他的互联网大厂的技术类社招面试,通常情况是 4 个轮次 ...

  10. 7年老Android一次操蛋的面试经历,灵魂拷问

    前言 说不焦虑其实是假的,因为无论是现在还是最近几年,很早就有人察觉Android开发的野蛮生长时代已经过去.过去的优势是市场需要,这个技术少有人有,所以在抢占市场的时候,基本上满足需要就已经可以了. ...

最新文章

  1. Unix调试的瑞士军刀:lsof
  2. 支持比特币支付的商家中有90%接受了BCH
  3. Mysql —— C语言链接mysql数据库,命令行形式(getopt()函数),用户、用户组增删改查(用户组表内有用户控制的策略字段)
  4. Hyperledger Fabric 管道(3) 如何做到数据隔离?
  5. boost::math模块使用 agm 以高精度计算 lemniscate 常量
  6. C#生成Excel报表 用MyXls组件生成更完美
  7. mysql的安装真不爽
  8. linux下ceontab不起作用,linux下crontab 不能执行的原因
  9. 离散余弦变换原理及实现过程【转载】
  10. 关于API和SDK的理解
  11. Oracle 19.6 的有趣BUG:可能引发 CLOB 存储数据的丢失
  12. 「09」真损啊!——损失函数与极大似然估计
  13. 1 k 1 k2c语言,一张图告诉你斐讯路由器K1S、K2,K2C的区别
  14. .Net框架设计(Yanlz+Unity+XR+C#+.Net+框架+框架设计+设计模式+工具可视化+SOA+立钻哥哥+==)
  15. 莫名其妙把电脑机箱左边耳机孔弄出来声音
  16. 计算机网络通过IP地址计算子网掩码
  17. 在matplotlib使用中文坐标轴,设置坐标轴,标题字体及字体大小
  18. uni-app实现拼多多倒计时拼团
  19. 如何使特定的数据高亮显示?
  20. 蓝桥七届 密码脱落 JAVA

热门文章

  1. java中write方法作用_JAVA中的懒人神器—方法(有返回值)
  2. 计算机竞赛等级,美国计算机奥林匹克竞赛等级
  3. 文明5 java 英_文明5模组“Future Worlds”(未来世界)中英版补丁
  4. Android 代码设置来电铃声
  5. android8.0系统 原生,羡慕原生安卓8.0?索尼XPZ系统占用11GB苦不堪言
  6. 32位与64位CPU字长
  7. python runner.daemonrunner_python3.3.4:pythondaemon3K;如何使用runn
  8. Java实现经纬度格式转化
  9. android reboot 消息,android reboot 流程
  10. 加入洛谷OJ,开通洛谷博客