java mvvm

作者:原创时间:2022-04-06
文档

java mvvm是什么,让我们一起了解一下?

MVVM是MVC的增强版,实质上和MVC没有本质区别,只是代码的位置变动而已,MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),优点是低耦合、可重用性、独立开发、可测试。

MVVM模式四大优点分别是什么意思?

1、低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。

2、可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。

3、独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xaml代码。

4、可测试。界面素来是比较难于测试的,测试可以针对ViewModel来写。

实战操作,具体实例代码如下:

//context
private Activity context;
//model(数据模型Bean)
private NewsService.News news;
private TopNewsService.News topNews;
//数据绑定(data field)
public final ObservableField imageUrl = new ObservableField<>();
public final ObservableField html = new ObservableField<>();
public final ObservableField title = new ObservableField<>();
// 一个变量包含了所有关于View Style 相关的字段
public final ViewStyle viewStyle = new ViewStyle();
//命令绑定(command)
public final ReplyCommand onRefreshCommand = new ReplyCommand<>(() -> {
})
public final ReplyCommand onLoadMoreCommand = new ReplyCommand<>((p) -> {
});
//Child ViewModel
public final ObservableList itemViewModel = new ObservableArrayList<>();
/** * ViewStyle 关于控件的一些属性和业务数据无关的Style 可以做一个包裹,这样代码比较美观,
ViewModel 页面也不会有太多的字段。 **/
public static class ViewStyle {
public final ObservableBoolean isRefreshing = new ObservableBoolean(true);
public final ObservableBoolean progressRefreshing = new ObservableBoolean(true);
}

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java mybatisplus java namespace java newinstance java nextint java nextline java nexus java nfs java geotools java getbytes java hashcode java hdfs java node类 java notify java nslookup java number java hibernate java htmlunit java image java implements java influxdb java multiset java mqtt java mono java monad java module java modelandview java mockito java mmap java mkdir java mina java mian java method java merge java memcpy java matrix java matlab java math.ceil java mapping java malloc java main