今天真是见了鬼了,4点了还是翻来覆去睡不着。。。忍不住,爬起来,把今天看到关于Android单例模式的应用写下来,借鉴了Android源码的实现方式,个人认为是最实用的两种
1.枚举型单例模式
使用枚举有三个好处:1.枚举类本身就是默认的单例模式2,枚举和其他的类一样,同样可以自定义方法什么的3.枚举默认线程安全
上代码:
public enum Test {
Intansce;
public void doSomething(){
}
}
调用的时候:Test.Intansce.doSomething();是不是很简单?
2结合枚举,.参考Android源码中:LayoutInflater的实现方式使用HashMap实现单例的管理类
public enum ObjectManger {
Intansce;
private HashMap<String,Object> hashMap = new HashMap<>();
public void putObject(String key,Object o){
hashMap.put(key,o);
}
public Object getObject(String key){
if(hashMap.containsKey(key)){
return hashMap.get(key);
}else{
return null;
}
}
}
在程序初始化的时候,将需要使用单例的类,放到这个管理类中。