【发布时间】:2016-12-29 05:47:18
【问题描述】:
我一直在尝试使用私有静态类来实现 Bill Pugh 单例设计模式,以返回单例改造实例。到目前为止,我已经能够提出以下代码。有人可以帮我检查这段代码并确认这是否是 Bill Pugh 先生自己建议的单例设计模式的正确实现,或者建议我一种正确的实现方式。
public class SingletonRetrofit {
private SingletonRetrofit(){}
private static class SingletonRetrofitHelper {
private static OkHttpClient okHttpClient;
private static Retrofit retrofit;
private static Retrofit makeRetrofit() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
okHttpClient = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.readTimeout(20, TimeUnit.SECONDS)
.connectTimeout(15, TimeUnit.SECONDS)
.build();
retrofit = new Retrofit.Builder()
.baseUrl("http://ci.draftserver.com/hornsbyapp/webservice/")
.client(okHttpClient)
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
return retrofit;
}
}
public static Retrofit getInstance() {
return SingletonRetrofitHelper.makeRetrofit();
}
}
【问题讨论】:
-
如果这是工作代码,那么 Code Review SE 是 down the hall。
-
@JohnBollinger 第一个门在你的右边。 ;)
-
@JohnBollinger 是的,代码运行良好,谢谢 :)
标签: android android-studio singleton retrofit2