Android MVP - 展示哪个模型以供查看

Android MVP - Which model to present to view

我正在使用 MVP 设计模式。我呈现给视图的模型目前是 POJOS,它们是我本地 Realm 数据库的模型。也就是说,他们已经注释了与数据库相关的成员。使用演示者将从交互器返回的数据库模型映射到仅包含视图应使用的数据的模型(我的视图有一个单独的模型 POJO)会更好吗?还是将视图交给我的数据库模型是一种很好的做法?

谢谢。

你要问的问题是

If I removed Realm from my app would I have to make changes to my view if I use these entity classes

如果答案是否定的,那么我认为使用这些实体传递给您的视图没有问题。但是,如果它们以您必须更改视图的方式绑定到 Realm,那么这将打破 MVP 的解耦想法。

无论如何,我个人经常制作 ViewModel。原因是我想尽量减少 Presenter 和 View 之间的单独调用次数。理想情况下,您的视图应尽可能接近以下方法:

setLoadingUi();
setContentUi(ViewModel model);
setEmptyUi();
setErrorUi();

虽然如果您有各种视图调用(例如 setConfirmButtonText 使 Presenter 对您的视图了解太多,这并不总是可行的。当您更改滑动按钮时会发生什么......您的 Presenter 需要更改以及您的视图。

希望对您有所帮助!