Android rxJava2项目结构,文件命名等

时间:2017-06-07 20:34:48

标签: java android rx-android rx-java2

我有一个Android项目,目前还没有使用View Models或rxJava。它是一个相当简单的应用程序,它使用Parse sdk和一个解析服务器。它还处于项目的早期阶段,我决定开始使用VM和rxJava。

我的问题主要是关于结构,命名等。让我们使用Login作为例子:

我有一个名为AuthenticationService.java的界面,其中包含login(Authorization auth, ServiceCallback<User> callback)方法。

我的ParseAuthenticationService.java实现了该界面,并完成了所有解析。

整个应用程序都是这样设置的,所以我的User.javaMyParseUser.java使用的界面,其中发生了所有解析的内容。

所以有一个登录按钮,LoginActivity抓取用户名/密码,制作一个授权对象并调用登录功能。

对rxJava的更改是否就像将login函数包装在observable中并在活动中订阅它一样简单?

看起来会是什么样?登录功能如下所示:

@Override
public void login(Authorization authorization, final ServiceCallback<User> callback)
{
    cachedUser = null;
    ParseUser.logInInBackground(authorization.getUsername(), authorization.getPassword(), new LogInCallback()
    {
        @Override
        public void done(ParseUser user, ParseException e)
        {
            if (callback != null)
            {
                callback.onServiceRequestComplete(Response.<User>from((MyParseUser) user, e));
            }
        }
    });
}

我可以保持相同的Parse-class-using-generic-interface结构吗?或者我应该重组/重命名我的文件?

感谢您的帮助。这有点压倒性的。

1 个答案:

答案 0 :(得分:0)

使用接口单独的合同声明来实现。由于Observable模式是表示异步响应的好方法,因此在接口中用Observable替换回调似乎是合适的。

您可以开始将Observable版本的回调函数放在一起。例如,撰写Observable<User> loginObservable(Authorization auth)(或更好Single<User> loginSingle(Authorization auth)),其中login( ... )Observable.create()基本上包裹Single.create()。之后你可能需要重构,但是当你熟悉Rx时你会这样做。对我来说,切换到Rx是一个2步骤的过程;我进化了我的架构,但很久以后。

由于像这样创建Observable是一个有点高级的Rx主题,我建议你为Parse寻找已经存在的Rx包装器。