我见过很多项目,这些项目展示了如何在MVP中实现登录,但却找不到任何与Google/Facebook登录有关的内容。
当登录流强烈地绑定到Android组件生命周期时,我们应该做什么呢?我看到了MVP的主要好处,因为我们在Context
之上构建了一个抽象,但是当我们需要遵循Facebook登录流时,这个抽象将显得过于复杂:您需要向CallbackManager
注册FacebookCallback
,调用logInWithReadPermissions()
(将活动/片段传递给它),将onActivityResult()
委托给callbackManager
,这将触发FacebookCallback的方法。
我的想法是创造出这样的东西
interface AuthInteractor {
void doFacebookLogin();
void doGoogleLogin();
}
其实现将了解上下文并初始化GoogleApiClient
。它将被注入演示者,但随着所有这些回调(特别是在Facebook的SDK中),事情将变得过于复杂。在这种情况下省略MVP不是更好吗?
发布于 2017-01-05 05:14:05
我猜你问这个问题是因为你想把两个“想法”合并成一个在你脑子里的问题:
大约两年前,当我研究Android中的MVP实现时,我偶然发现了类似的问题,我得出的结论是,解决所有这类问题的唯一方法是放弃活动/片段是MVP视图的想法。
我在这篇文章中详细讨论了这个问题:为什么Android中的活动不是UI元素
还有一个关于如何在Android中实现更好的MVP的教程:Android中的MVP和MVC。
https://stackoverflow.com/questions/36102979
复制