MVVM学习
1MVP模式:优点
MVP架构可以让宿主专注UI逻辑和用户交互的处理。把宿主中的业务逻辑全部分离出来,所有跟Android API无关的业务逻辑由 Presenter 层来完成。但是缺点就是增加了代码量。
1.Activity 和Fragment 视为View层,负责处理 UI和用户交互。
2.Presenter 为业务处理层,负责处理业务逻辑,发起数据请求。
3.Model 层中包含着具体的数据请求,数据源。但是这一层在retrofit的场景下可以被弱化。
2MVVM架构相比MVC、MVP有着以下优点:
1.双向绑定 :数据变更UI会自动刷新,UI变化了数据也会自自动同步到最新的值。
2.数据驱动UI :比如,User中的字段,数据变化了,可以做到自动刷新UI。
3.UI同步数据 :比如,EditText、checkBox、toggleButton具有状态的View,当状态变化后,数据模型中与之关联的字段的值也会自动同步最新状态。
3Jetpack
Lifecycle
可以帮助开发者创建可感知生命周期的组件。这样,组件就可以在其内部管理自己的生命周期,从而降低模块间的耦合度,并降低内存泄露的发生
使用Lifecycke里的ON_CREATE等方法来感知生命周期
ViewModel
ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存
ViewModel类,专门用于存放应用程序页面所需的数据。它将页面所需的数据从页面中剥离出来,页面只需要处理用户交互,以及负责展示数据的工作。
LiveData
实现ViewModel与View之间的沟通
DataBinding
dataBinding只是一种工具,它解决了View和数据之间的双向绑定