android - 关于 Retrofit 的 ApiService
大家讲道理
大家讲道理 2017-04-17 16:12:10
[Android讨论组]

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

例如有一个 ApiService,

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

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(6)
怪我咯

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

PHP中文网

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

黄舟

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

黄舟

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

黄舟

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

伊谢尔伦

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号