Android MVVM模式下的数据处理

Android MVVM模式下的数据处理,android,mvvm,Android,Mvvm,谁的角色是以MVVM模式处理数据 例如,如果您需要在一个屏幕上以mm/dd/yyyy格式显示日期对象,而在另一个屏幕上以mm-dd-yyyy格式显示日期对象,那么视图或视图模型的角色是谁 如果这是我使用的视图角色@BindingAdapter, 如果它是ViewModel的角色,请使用Livedata().map{/*format*/} 使用MVVM模式的更好方法是什么 谢谢。在ViewModel中效果更好。如果将来从数据绑定切换,映射逻辑将保留在ViewModel中。MVVM的视图模型是一个值

谁的角色是以MVVM模式处理数据

例如,如果您需要在一个屏幕上以
mm/dd/yyyy
格式显示日期对象,而在另一个屏幕上以
mm-dd-yyyy
格式显示日期对象,那么视图或视图模型的角色是谁

如果这是我使用的视图角色
@BindingAdapter
, 如果它是ViewModel的角色,请使用
Livedata().map{/*format*/}

使用MVVM模式的更好方法是什么


谢谢。

在ViewModel中效果更好。如果将来从数据绑定切换,映射逻辑将保留在ViewModel中。

MVVM的视图模型是一个值转换器,这意味着视图模型负责以易于管理和显示对象的方式从模型中公开(转换)数据对象。在这方面,视图模型更多的是模型而不是视图,并且处理大部分(如果不是全部的话)视图的显示逻辑

因此,从概念上和实现上看,逻辑或转换应该在视图模型中。

我会将原始的“长”时间戳保留在视图模型中,然后根据需求决定在何处将数据转换为字符串。将字符串保留在viewmodel中的一个优点是,它只执行一次转换,并将数据保留到生命周期结束。而绑定适配器将在每次绑定视图时进行转换。同时,字符串将保留在内存中,直到生命周期结束