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çosAtividadesfragmentos

oServiç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?

questionAnswers(2)

yourAnswerToTheQuestion