简述
MVVM(Model-View-ViewModel)架构是用于构建用户界面的架构模式,它将UI和业务逻辑分离。
- Model:数据模型,用于存储和操作数据
- View:用户页面,用于展示数据和接收用户输入
- ViewModel:负责连接View与Model,负责数据的双向绑定与转换(核心思想)
MVVM衍生于MVC(Model-View-Controller)架构,但是MVC存在以下问题:
- 所有业务逻辑都在Controller中操作,复杂且不易维护
- DOM(Document Object Model)操作使性能降低
- Model发生变化时,需要主动更新View;用户操作使Model发生变化时,需要将数据更新到Model中,不易于维护。
由此,MVVM基于上述缺点,提出ViewModel以将View与Model直接通讯。即用户操作View时,ViewModel会感知到变化,同步给Model,反之同理。
然而没有事物是完美的,需要在特定的场景下确定到底是使用MVC架构还是MVVM架构:
- MVVM:大型或复杂的项目、项目周期长、需要跨平台、对性能要求不高等
- MVC:小型或简单的项目、项目周期短、不需要跨平台、性能要求高等
Model(模型)
负责处理数据和业务逻辑。独立于界面,可以在多个界面中共享,用于提供数据和处理数据的方法,封装业务逻辑。例如:
java public class User {
private String name;
private int age;
// getter and setter methods
// 数据获取的方法
public LiveData getUser() {
// 从网络或数据库获取用户数据
return userReposito