MVVM架构
MVVM在Android开发中MVVMModel-View-ViewModel是一种基于数据驱动的架构设计模式旨在分离应用的UI逻辑与业务逻辑。结合架构组件如LiveData、ViewModel、DataBinding可以有效地减少代码耦合、提升代码可维护性。MVVM模式强调数据驱动UI更新使得应用逻辑和UI分离更加清晰。Android其实从一开始就有数据/状态驱动的设计也就是Android开发都很熟悉的drawable。drawable在使用时提供了诸如selector和level-list之类的模板其本质就是状态驱动的思想外部只需要控制控件当前的状态就能控制它最终的显示只不过这样的设计在当时没有延展到代码之中在其实现中还是使用的局部变量和使令式的做法来做的。MVVM由三部分组成Model数据源或业务逻辑层负责处理应用中的数据部分如网络请求、数据库将处理结果提供给 ViewModel。ViewUI展示层负责界面的显示、用户交互观察 ViewModel 中的数据变化并根据数据的变化自动更新UI。可以使用DataBinding绑定ViewModel的。ViewModel连接View与Model的中间层是运行时数据存储组件负责持有UI的数据并且通过观察者模式来响应数据的变化从而驱动UI更新。从 Model 中获取数据且不依赖于 View。ViewModel 中通常使用 LiveData 或 StateFlow 来管理数据的状态。LiveData是运行时数据订阅分发组件。Android的依赖注入库Dagger匕首是Square公司出品的Hilt刀把是由Google公司在Dagger的基础上优化而来。Hilt作为Android的依赖注入库进一步简化了MVVM的依赖管理。通过AndroidEntryPoint注解Activity/Fragment使用Inject构造函数注入依赖使MVVM组件更易于测试和维护。