Padrões de design de retrofit para Android
Estou usando o Retrofit para interagir com minha API REST e queria saber se alguém tem alguma sugestão de design.
Meu aplicativo possui os seguintes pacotes:
modelosServiçosAtividadesfragmentosoServiços O pacote contém as interfaces para o Retrofit. Por exemplo:
public interface FooService {
@FormUrlEncoded
@POST("foo/do")
@Headers("Content-Type: application/x-www-form-urlencoded; charset=UTF-8")
Call<FooBar> do();
}
Modelos contém ... bem, os diferentes modelos. Por exemplo,FooBar. Até aí tudo bem - assim como na documentação do Retrofit.
Eu criei uma classe de API que lida com a lógica de construção Retrofit (Retrofit retrofit = new Retrofit.Builder()
etc) e expõe um campo estático: retrofit.Em minhas atividades, eu posso executar meus pedidos da seguinte maneira:
FooService service = API.retrofit.create(FooService.class);
Call<FooBar> call = service.do();
try {
retrofit2.Response response = call.execute();
// ...do stuff...
} catch(IOException) {}
E aqui vem a minha pergunta: Seria melhor abstrair ainda mais o exposto? Para que eu não precisaria repetir o exposto em todos os lugares? Por exemplo, algo como:
MyOtherFooService service = new MyOtherFooService();
FooBar fooBar = service.do();
Alguma ideia? Recomendações?