-
目录
- 介绍 看完刷新你的认知,mvvm是moel,view,viewmodel,而model是负责获取数据,view负责展示,至于viewmodel是负责业务逻辑,mvvm实在mvp的基础上建立的一套解耦性更强的框架,view和viewmodel的对象持有关系的是view持有viewmodel的对象viewmodel不能持有view层的对象,因为viewmodel的生命周期要长于activity,mvvm基于databinding,livedata,lifecycle,viewmodel等框架进行搭建的,lifecycle是基于注解器以及观察者模式进行生命周期绑定的框架可以用来关联activity或者fragment声明周期方法从而达到一个自动调用生命周期方法关联的方法的效果,livedata是基于lifecycle框架实现的基于观察者的数据驱动框架,在mvvm中可以用来vm层与view层通信,databinding框架是用来实现数据ui的双向绑定,通过databinding下的ViewDataBinding,持有Activity或者fragment和view的引用,主要作用一次遍历View,实例化所有的子view,并存储在数组中,这里解决了findviewbyid性能问题看,DataBinderManagerImpl提供了布局文件layoutid到ViewDataBinding类对象的映射,主要用于加载layout返回对应的ViewDataBinding对象,DataBinding在编译时会生成一个ViewDataBinding的子类。
-
总结
MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点
1. 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
2. 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
3. 独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xaml代码。
4. 可测试。界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。
-
小结
当然我更希望你们能够会掌握这些框架,不是会了一套框架忘记了另一套每一套由每一套的好处,比如mvc他适合写一些小逻辑形势的,不一定非得要用这一套框架都有自己的好处。
MVVM的说明
最新推荐文章于 2023-02-28 11:04:20 发布