首页 > 关于 Retrofit 的 ApiService

关于 Retrofit 的 ApiService

在使用 retrofit 的时候,是将 api 接口写在一个 Interface 里,再使用 Retrofit.Builder 来生成该 Interface 的实例来用的。

例如有一个 ApiService,

    Retrofit retrofit = new Retrofit.Builder()
                            .client(client)
                            .baseUrl(AppConfig.BASE_URL)
                            .build();
    apiService = retrofit.create(OthersService.class);

那么,假如我的项目中有很多接口,我是全部接口 api 都丢进 ApiService 里面呢,
还是分开各部分功能的 API,分别使用不同的 xxxService 呢?
主要是考虑性能是否有所不同?


还是分开的好,单一职责原则,从性能角度基本可以忽略,毕竟不是同时创建大量的对象,加上Retrofit采用的动态代理,所有的方法都是采用的同一个InvocationHandler进行处理,所以我认为性能几乎没有不同。


写一个里,不用每次实例化


我感觉可以全都可以写在OthersService.class里


建议写在一个类里,你的OthersService在启动的时候初始化一次,之后都用同一个OthersService对象,不用再retrofit.create(OthersService.class)了。


将同一域下的接口放在一个apiService里就可以了,一个有点规模的App几十个接口不至于管理不过来吧。然后不同域下的接口分成不同的apiService,比如第三方登录,推送。这是比较合理的做法吧


个人观点是
如果是restful的后台,一种model写一个service比较清晰,这样一个service大概就是get put post delete这几种方法吧。

【热门文章】
【热门文章】