ViewModel如果以下列方式使用,新类的实例可以在配置更改后继续存在:
mViewModel = ViewModelProviders.of(this).get(MyViewModel.class);
Run Code Online (Sandbox Code Playgroud)
但是,除了配置更改之外,还有一个保存还原方案,当整个应用程序的进程被终止时.
ViewModel在保存还原方案中,是否会保留字段内的值?
编辑:根据这个问题的答案,我写了这篇文章:Android ViewModel Architecture Component is Dangerous
android viewmodel view-model-pattern android-viewmodel android-architecture-components
据我所知,使用视图模型可以使web开发.生活更容易,从某种意义上说,我们可以使用这种方法只显示本地化字符串中所需的属性.我也在mvc3视图模型中使用jquery验证等.
现在我有点怀疑,因为我的webapp中存在真正的瓶颈.查询所有对象(其中20个)就像这样
List<Domain.Property> data = session.Query<Domain.Property>().ToList();
return PropertyViewModel.FromDomainModel(data);
Run Code Online (Sandbox Code Playgroud)
并且Property对象列表被发送到我的ViewModel,其中是FromDomainModel,它需要List of Property对象,如下所示
List<PropertyViewModel> dataVm = new List<PropertyViewModel>();
{
foreach (Property p in x)
{
dataVm.Add(new PropertyViewModel(p));
}
return dataVm;
}
Run Code Online (Sandbox Code Playgroud)
现在和我正在使用的同一个班级
public PropertyViewModel(Property x)
{
Id = x.Id;
Created = x.Created;
Title = x.Title;
....
Photo = x.Photos.First();
}
Run Code Online (Sandbox Code Playgroud)
但是使用这种方法将对象集合发送到viewmodel,其中返回相同的viewmodel,只返回我需要的几个属性,扼杀(至少对我来说)我实现多个实体加载和持续时间大幅度增加.
如果您需要更多信息.请问.
如果您知道更好的解决方案,请分享.
更新: 当使用域模型时,我加载了20个实体,当使用上面描述的视图模型时,会加载67个实体,这会大大降低性能.