Я создал абстрактный класс FbActivity, который расширяет Activity для подключения к Facebook с помощью Facebook SDK для Android. Примерно так:
public abstract class FbActivity extends Activity {
private static final String APP_ID = "xxxxxxxxxxxxx";
protected Facebook mFacebook;
/*
* Override onCreate to connect to facebook.
*/
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mFacebook = new Facebook(APP_ID);
setFbConnection();
}
Хочу ли я, чтобы каждый FbActivity
создавал свою собственную переменную Facebook, или я должен сделать переменную Facebook static
, чтобы для всего приложения была только одна переменная? Или, возможно, мне следует использовать тип установки singleton
, подобный следующему ...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (mFacebook == null) {
mFacebook = new Facebook(APP_ID);
}
setFbConnection();
}
Если у вас нет ответа на этот точный вопрос, абстрагируйтесь от переменной Facebook. Когда «лучше» иметь статическую переменную (особенно в таких ситуациях наследования)?