我已经看过很多项目,展示了如何在MVP中实现登录,但找不到与Google/Facebook登录相关的任何内容.
在登录流程强烈绑定到Android组件生命周期的情况下,我们该怎么办?我看到MVP的主要好处在于我们建立上述的抽象Context,但是当我们需要遵循,例如,Facebook的登录流程这种抽象会显得过于复杂:你需要注册FacebookCallback与CallbackManager,调用logInWithReadPermissions()(传递活动/片段吧)委派onActivityResult()到callbackManager,这将触发FacebookCallback的方法.
我的想法是创造类似的东西
interface AuthInteractor {
void doFacebookLogin();
void doGoogleLogin();
}
Run Code Online (Sandbox Code Playgroud)
其实现将了解Context并初始化GoogleApiClient.它会在Presenter中注入,但是所有这些回调(特别是在Facebook的SDK中)会变得太复杂.在这种情况下省略MVP不是更好吗?
我猜你问这个问题是因为你试图将两个“想法”合并为你头脑中的一个:
大约两年前,当我研究 Android 中的 MVP 实现时,我偶然发现了类似的问题,我得出的结论是,解决所有此类问题的唯一方法是放弃 Activity/Fragment 作为 MVP 视图的想法。
我在这篇文章中详细讨论了这个问题:WhyActivities in Android are not UI Elements
并且还有一个关于如何在Android中实现更好的MVP的教程:MVP and MVC in Android
| 归档时间: |
|
| 查看次数: |
954 次 |
| 最近记录: |