我正在使用Retrofit与我的REST API进行交互,并且想知道是否有人有任何设计建议。Android Retrofit设计模式
我的应用程序有以下软件包:
- 车型
- 服务
- 活动
- 片段
的服务包中包含用于改造的接口。例如:
public interface FooService {
@FormUrlEncoded
@POST("foo/do")
@Headers("Content-Type: application/x-www-form-urlencoded; charset=UTF-8")
Call<FooBar> do();
}
模型包含...以及不同的模型。例如,FooBar。目前为止这么好 - 就像每个Retrofit文档一样。
我已经创建了一个API类,即处理改造构建逻辑(Retrofit retrofit = new Retrofit.Builder()
等),并公开静态字段:retrofit.In我的活动我则可以执行我的要求如下:
FooService service = API.retrofit.create(FooService.class);
Call<FooBar> call = service.do();
try {
retrofit2.Response response = call.execute();
// ...do stuff...
} catch(IOException) {}
而且随即出现我的问题:将上述内容进一步抽象出来会更好吗?这样我就不需要在上面重复以上了?例如,类似的东西:
MyOtherFooService service = new MyOtherFooService();
FooBar fooBar = service.do();
有什么想法?建议?
这段代码取自我以前的项目,它使用改进版本:'retrofit:2.0.0-beta2',我认为你应该改变一下。 – Amir
这是我的方法以及埃米尔,如改造书中所述。 https://leanpub.com/retrofit-love-working-with-apis-on-android。我喜欢你没有添加任何东西的事实。 KISS :) – Radu
@Radu真的吗? :D我从2年前开始使用这种方法。我从我的一位同事那里学到了这一点。 BTW感谢您的伟大的方法;) – Amir