例如,假设你有一家在线商店出售音乐和dvds.在您的浏览页面上,您需要显示所有dvds和音乐的列表.因此,您是否将构建一个viewmodel对象,该对象具有包含相册列表和dvds列表的两个属性?
从我的理解看来,你拥有所有的模型类.一个专辑/ Dvd类,但简单地传递这些单独不足以为您的View. viewmodel基本上作为您的View需要的所有数据的载体吗?
viewmodel还可以从您的Model携带的数据类型执行到您的View可以方便地使用的数据类型的转换;这甚至可能意味着viewmodel不直接携带模型,而是以更合适的格式携带相同信息的其他容器(可能是子集).
考虑到您可以拥有聚合相册和DVD的库模型 – 这种模型与相应viewmodel之间的区别正是该模型不关心(甚至了解)View,而viewmodel具有明确的目的促进它.