单例模式
来源:互联网 发布:程序员改bug 编辑:程序博客网 时间:2024/06/01 09:52
public class RetrofitManager {
private Retrofit mRetrofit;
private static final String DEFUALT_BASE_URL = "http://www.baidu.com";
//一种单例模式
private static class SingleHolder {
private static final RetrofitManager _instance = new RetrofitManager(DEFUALT_BASE_URL);
}
//使用默认的单例RetrofitManager,是默认的baseurl
public static RetrofitManager getDefault() {
return SingleHolder._instance;
}
//如果baseurl不是默认的话,那就调用这个方法构造一个新的RetrofitManager
public static RetrofitManager getRetrofitManager(String baseUrl) {
return new RetrofitManager(baseUrl);
}
private RetrofitManager(String baseUrl) {
this.mRetrofit = buildRetrofit(baseUrl);
}
private Retrofit buildRetrofit(String baseUrl) {
Retrofit.Builder builder = new Retrofit.Builder();
builder.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
return builder.build();
}
public <T> T create(Class<T> clazz) {
return mRetrofit.create(clazz);
}
}
private Retrofit mRetrofit;
private static final String DEFUALT_BASE_URL = "http://www.baidu.com";
//一种单例模式
private static class SingleHolder {
private static final RetrofitManager _instance = new RetrofitManager(DEFUALT_BASE_URL);
}
//使用默认的单例RetrofitManager,是默认的baseurl
public static RetrofitManager getDefault() {
return SingleHolder._instance;
}
//如果baseurl不是默认的话,那就调用这个方法构造一个新的RetrofitManager
public static RetrofitManager getRetrofitManager(String baseUrl) {
return new RetrofitManager(baseUrl);
}
private RetrofitManager(String baseUrl) {
this.mRetrofit = buildRetrofit(baseUrl);
}
private Retrofit buildRetrofit(String baseUrl) {
Retrofit.Builder builder = new Retrofit.Builder();
builder.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
return builder.build();
}
public <T> T create(Class<T> clazz) {
return mRetrofit.create(clazz);
}
}
阅读全文
0 0
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 单例模式(单子模式)
- 设计模式-单例模式
- [设计模式] 单例模式
- #{}和${}的区别
- PAT 甲级 1106. Lowest Price in Supply Chain (25)
- 树链剖分+线段树 HDU3966 权值在点 模板
- ios开发 Could not signal service com.apple.WebKit.WebContent: 113
- eclipse快捷键整理
- 单例模式
- ionic cordova andoid环境配置
- 运算符重载 编程题#2(Coursera 程序设计与算法 专项课程3 C++程序设计;重载:& operator-)
- PHP实现HTTP断点续传的方法
- 密码输入框显示为文字
- poj 2828 Buy Tickets
- gcc编译文件出错
- Java 设计模式-建造者模式(Builder)
- iPhone设备分辨率及尺寸