mvvm学习笔记

mvvm学习笔记mvvm实际上是M(model),V(view),与VM(view-model)的三层架构。Model层,主要负责数据的提供。Model层提供业务逻辑的数据结构(比如,实体类),提供数据的获取(比如,从本地数据库或者远程网络获取数据),提供数据的存储。View层,主要负责界面的显示。View层不涉及任何的业务逻辑处理,它持有ViewModel层的引用,当需要进行业务逻辑处理时通知ViewModel层。ViewModel层,主要负责业务逻辑的处理。ViewModel层不涉及任何的视
摘要由CSDN通过智能技术生成

mvvm学习笔记

mvvm实际上是M(model),V(view),与VM(view-model)的三层架构。

mvvm的主要内容有两个方面:一个是代码的结构,一个是DataBinding的使用:

1、代码结构方面

建议代码按功能模块划分,在具体的模块下再细分为model、view、view_model三层。

  1. 其中,model层负责数据的获取(比如数据库的链接和增删改查操作、cameraDevice的获取等等),本身被view_model层调用,也可以持有viewmodel的引用,修改部分的值;

  2. view层负责页面的显示和页面逻辑的绑定(一般我们的activity、自定义view等都可以放在里面),持有viewmodel的引用,一般不直接与model层交互。

  3. viewmodel层对应的是mvc里的controller,我们一般继承android自己的viewmodel类,一些创建比较耗时的对象、具体的数据操作逻辑、和model的交互等等都可以放到viewmodel里,持有model层的引用,被view层和model层引用。

请注意,viewmodel正常情况下不要持有包含context的引用(activity等),如果有特殊情况需要使用context,请继承AndroidViewModel。

viewmodel具体使用请参考:viewmodel官方文档

推荐几篇文章:
Android应用架构之MVVM模式
Android MVVM 模式
ViewModel简介

2、DataBinding方面

要使用DataBinding,首先需要在guild里引入,然后sync一下
android {
   
    ...
    defaultConfig {
   
        ...
        dataBinding {
   
            enabled = true
        }
    }

sync完成后我们可以去到我们之前创建的项目下面,选中底层布局的layout,按Alt+Enter,
(有一些文章里写的用Alt+Insert,AndroidStudio4.1.3实测无效)
选中Convert to data binding layout,Enter确认。
最后应该是出来这个界面就对了

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://s
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值