gpt4 book ai didi

java - 为什么volley类采用单例模式设计?

转载 作者:太空宇宙 更新时间:2023-11-04 11:21:47 25 4
gpt4 key购买 nike

为了使用 volley 库,我找到了以下代码:

public class AppController extends Application {

public static final String TAG = AppController.class
.getSimpleName();

private RequestQueue mRequestQueue;

private static AppController mInstance;

@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}

public static synchronized AppController getInstance() {
return mInstance;
}

public RequestQueue getRequestQueue() {

//baraye avalin bar ejra mishe
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
}

return mRequestQueue;
}

public <T> void addToRequestQueue(Request<T> req, String tag) {
// set the default tag if tag is empty
req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
getRequestQueue().add(req);
}

public void cancelPendingRequests(Object tag) {
if (mRequestQueue != null) {
mRequestQueue.cancelAll(tag);
}
}

}

我想了解为什么这个类使用Singleton模式设计?如果我们创建该类的两个对象会出现什么问题?

最佳答案

这不是单例模式。单例模式强制要求特定类只能(最多)有一个实例。这里不是这样的。您可以在许多 AppController 中拥有许多 RequestQueue

这实际上是 lazy initialisation 。之所以使用它,可能是因为实例化 RequestQueue 是一项大型操作,如果没有必要,您不想实例化它。

关于java - 为什么volley类采用单例模式设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44821501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com