gpt4 book ai didi

android - Retrofit 2 接口(interface) - 正确的方法?

转载 作者:行者123 更新时间:2023-11-30 00:34:44 27 4
gpt4 key购买 nike

对于以正确的方式编写代码,我 有点 非常偏执。到目前为止,我已经在很多项目(Android 应用程序)中使用了 Retrofit。

我通常创建一个单例帮助程序类来获取改造实例,以及一个包含所有 API 调用的接口(interface)。

像这样:

public class RetrofitHelper {
public static API getInstance() {
return ourInstance.client;
// client = retrofit.create(API.class); instantiated only once in singleton constructor
}
}

public interface API {
@POST("api/url")
Observable<ResponseObject> methodOne(@Body RequestBody requestBody);

@GET("api/url/2")
Observable<ResponseObject> methodTwo();

@GET("api/url/3")
Observable<ResponseObject> methodThree();
}

我认为这很好,但每当我看到代码示例时,人们似乎都在为每个/组 API 调用和多个改造实例使用单独的接口(interface)。

哪个是正确的方法?这些方法中的任何一种对内存/性能的影响是否不同?

你能引用一个使用“正确方式”改造的项目/代码示例吗?如果它与 Retrofit2 + RxJava + MVP 架构一起使用 - 那将是完美的!

谢谢!

最佳答案

没有人创建不是优化方式的多实例:

您可以引用以下示例代码链接以了解 dagger 2 改造和 MVP:

  1. Hello MVP simple

  2. Aditya Ladwa has explained it easily

  3. Here is Medium Article on it

  4. dagger 2 mvp

    **注意**
    Dagger 允许您创建一个应用程序范围对象并在整个应用程序中使用它,无需每次都创建新实例

编辑:

@Module
public class ApiModule {

@AppScope
@Provides
APIInteface providesRetrofitApiService(Retrofit retrofit) {
return retrofit.create(APIInteface.class);
}

}

一旦你有了这个对象,你就可以在任何地方使用它@Inject APIInterface apiInterface;

关于android - Retrofit 2 接口(interface) - 正确的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43609442/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com