改造2接口 - 正确的方法?

时间:2017-04-25 11:28:48

标签: android optimization retrofit retrofit2

对于以正确的方式编写代码,我很擅长<罢工> 。到目前为止,我已在很多项目(Android应用程序)中使用过Retrofit。

我通常创建一个单例辅助类来获取改进实例,以及一个包含所有API调用的单个接口。

这样的事情:

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调用和多个改造实例使用单独的接口。

哪种方法正确?这些方法中的任何一种都会以不同方式影响内存/性能吗?

您能参考使用“正确方法”进行改造的项目/代码示例吗?如果它与Retrofit2 + RxJava + MVP架构一起 - 那将是完美的!

谢谢!

1 个答案:

答案 0 :(得分:1)

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

您可以参考以下链接到示例代码,以了解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

    **NOTE** Dagger allows you to create a application scope object and use it throughout app, no need to create new instance everytime

  5. 编辑:

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

    获得对象后,您可以使用@Inject APIInterface apiInterface;

    进行使用