Android MVP:登录凭据验证

Android MVP: login credential validation

最近几天我开始学习 MVP,我发现这很有趣 tutorial。我按照代码一步步在我的应用程序中实现登录功能。但是,我仍然很难理解输入验证应该在哪里!在本教程中 LoginInteractorImpl class 中的登录方法(一个方法中有 2 个功能!)。我的问题是,为什么我必须联系 Interactor class 来验证凭据?为什么不验证 Presenter class 中的输入,如果输入正确,我将其传递给交互器?

输入验证可以在视图或演示器内部进行,但这不是我们的想法。这个想法是让所有 "business logic" 都在交互器中,而 activity 尽可能地是 "dumber",而演示者是这两者之间的 link。

presenterviewsmodels 之间的粘合剂,它所做的只是在两者之间交换信息。它不应该做任何类型的逻辑,只是它的指定任务。阅读 Seperation of Concerns

如果您需要实现另一个登录屏幕并且想要使用与 LoginInteractor 相同的逻辑,会发生什么情况?您必须向新演示者添加验证逻辑。或者,如果您更改验证技术怎么办?

更改逻辑应该不会对演示者产生影响,vice-versa。演示者只关心传递信息。