我看过很多项目,这些项目显示了如何在MVP中实现登录,但是找不到与Google/Facebook登录有关的任何内容。
如果登录流程与Android组件的生命周期紧密相关,我们该怎么办?我看到了MVP的主要好处是,我们在Context
之上构建了一个抽象,但是当我们需要遵循这种抽象时,这种抽象显得太复杂了,例如,Facebook登录流程:您需要使用FacebookCallback
注册CallbackManager
,调用logInWithReadPermissions()
(通过Activity/fragment ),将onActivityResult()
委托(delegate)给callbackManager
,这将触发FacebookCallback的方法。
我想到的是创建类似
interface AuthInteractor {
void doFacebookLogin();
void doGoogleLogin();
}
其实现将了解Context并初始化
GoogleApiClient
。它将被注入(inject)到Presenter中,但是所有这些回调(特别是在Facebook的SDK中)将变得太复杂了。在这种情况下省略MVP更好吗? 最佳答案
我猜您是在问这个问题,因为您试图将两个“想法”合并为一个想法:
大约两年前,当我研究Android中的MVP实现时,我偶然发现了类似的问题,得出的结论是,解决所有此类问题的唯一方法是放弃Activity/Fragment是MVP View 的想法。
我在这篇文章中发布了对此问题的详细讨论:Why Activities in Android are not UI Elements
还有一个关于如何在Android中实现更好的MVP的教程:MVP and MVC in Android
关于android - 如何通过第三方SDK遵循MVP架构?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36102979/