记录一下自己常用的一个单例设计模式的写法
1、采用懒汉式(其实单例设计模式饿汉式并不推荐);
2、采用双重加锁保证线程安全;
其余步骤和解释代码的注释里都有,就不赘述了。
private Context mContext;
//选择懒汉模式
private static MyWebSocketClient mInstance;
//1. 私有构造方法
private MyWebSocketClient(Context context) {
//开启WebSocket客户端
super(URI.create("webSocket链接"));
this.mContext = context;
}
//2.公开方法,返回单例对象
public static MyWebSocketClient getInstance(Context context) {
//懒汉: 考虑线程安全问题, 两种方式: 1. 给方法加同步锁 synchronized, 效率低; 2. 给创建对象的代码块加同步锁
if (mInstance == null) {
synchronized (MyWebSocketClient.class) {
if (mInstance == null) {
mInstance = new MyWebSocketClient(context);
}
}
}
return mInstance;
}