对于设计模式中的单例模式,到底何时该用单例?
今天在Android LocalBroadcastManager
本地广播见到了单例模式
public static LocalBroadcastManager getInstance(Context context) {
synchronized (mLock) {
if (mInstance == null) {
mInstance = new LocalBroadcastManager(context.getApplicationContext());
}
return mInstance;
}
}
有没有大神能够指点下,为何这里要用单例?
个人拙见,你想用单例模式一般是以下情况
就以
LocalBroadcastManager
为例,它的工作模式是你在这个类里面注册广播接收器,再通过它来发送广播,从而注册的广播接收器可以收到这个广播。那么如果不使用单例模式,你给对象a注册一个接收器,那么下次你new出来一个对象b,你觉得朝着对象b发广播,a还能收到吗?这就需要你获取到的永远是对象a吧?
同样,如果对象a不是静态的(或者说单例),过一会它失去引用被回收了,那么下次你怎么获取到它?
再举个例子,Application不就是典型的单例吗?