枚举的优点有很多,这里不再废话,现在流行的单例模式的实现有“双重检查锁”,“静态内部类”,但是枚举和他们相比有过之而无不及,它可以高效和安全的实现单例模式,这里以实现Retrofit2.0的单例为例:
@SuppressWarnings("all")
public enum RetrofitUtil {
RETROFIT;
private Retrofit retrofit;
RetrofitUtil(){
retrofit = new Retrofit.Builder()
.baseUrl("")//设置网络请求时的Url地址
.addConverterFactory(GsonConverterFactory.create())//设置数据解析器
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())//支持RxJava
.build();
}
public Retrofit getRetrofit(){
return retrofit;
}
}
具体的使用如下:
RetrofitUtil retrofit = RetrofitUtil.RETROFIT.getRetrofit();