因此MVVM明确指出,视图模型不应包含视图实现/视图特定对象。但是,某些视图需要实例化昂贵的对象(例如,地图渲染对象)或占用大量内存。在Android上,诱惑是将这些对象放入ViewModel
中,以便它们在生命周期更改中生存下来。但这违反了MVVM原理。
是否有良好的做法,如何在MVVM中处理沉重的,特定于视图的对象?
答案 0 :(得分:1)
正如您刚才所说,由于分离视图引用危险事件,视图模型不应包含任何视图引用。 任何繁重的视图也应实例化到生命周期所有者类中。如果这种视图渲染速度变慢,则始终可以应用一些后创建或异步逻辑。
视图模型可以通过这种方式为您提供帮助。实际上,您可以从视图观察viewmodel上的可变标志对象。当 lock 标志更改时,您将开始重对象渲染。
这只是一个例子,也许如果您可以更详细地了解大量视图对象的含义,那么我们可以找到更精确和有效的解决方案。