Retrofit 针对不同baseUrl和不同SSLContext的多个改装对象

Retrofit 针对不同baseUrl和不同SSLContext的多个改装对象,retrofit,retrofit2,Retrofit,Retrofit2,我正在编写与四个不同服务器通信的代码,其中一个服务器需要两种不同类型的SSL 我创建了四次翻新对象,以获得四个具有不同baseURL的接口。就像 InterfaceOne one = new Retrofit.Builder() .baseUrl("address1") .build() .create(InterfaceOne.class); InterfaceTwo two = new Retrofit.Builder

我正在编写与四个不同服务器通信的代码,其中一个服务器需要两种不同类型的SSL

我创建了四次翻新对象,以获得四个具有不同baseURL的接口。就像

InterfaceOne one = new Retrofit.Builder()
            .baseUrl("address1")
            .build()
            .create(InterfaceOne.class);

InterfaceTwo two = new Retrofit.Builder()
            .baseUrl("address2")
            .build()
            .create(InterfaceTwo.class);

InterfaceThree three = new Retrofit.Builder()
            .baseUrl("address3")
            .build()
            .create(InterfaceThree.class);

InterfaceFour four = new Retrofit.Builder()
            .baseUrl("address4")
            .build()
            .create(InterfaceFour.class);
对我来说,这就像是重复代码。所以我的第一个问题是,这是一个处理四种不同baseURL的好结构吗

对于具有两种不同SSL的服务器,我将使用如下结构。但对我来说已经很难看了

OkHttpClient okhttp = new OkHttpClient.Builder()
            .sslSocketFactory(getSSLContextOne().getSocketFactory())
            .build();

interfaceFour_1 = new Retrofit.Builder()
            .client(okhttp)
            .baseUrl("address4")
            .build()
            .create(InterfaceFour_1.class);

OkHttpClient okhttp2 = new OkHttpClient.Builder()
            .sslSocketFactory(getSSLContextTwo().getSocketFactory())
            .build();

interfaceFour_2 = new Retrofit.Builder()
            .client(okhttp2)
            .baseUrl("address4")
            .build()
            .create(InterfaceFour_2.class);
有没有更好的方法来改进当前的代码