использование статических переменных в приложении

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
werter
Сообщения: 5
Зарегистрирован: 26 мар 2014, 00:22

использование статических переменных в приложении

Сообщение werter » 16 май 2014, 20:31

собственно у меня вопрос :

считается ли дурным тоном использование статических переменных ?

как бы очень удобно иметь доступ к переменной с любого фрагмента или Activity.

насколько нормальная это практика ?

Donart
Сообщения: 114
Зарегистрирован: 06 ноя 2013, 08:59

Re: использование статических переменных в приложении

Сообщение Donart » 16 май 2014, 20:36

werter писал(а):насколько нормальная это практика ?

Такой практики нет и это не нормально, нарушается принцип инкапсуляции. Статическими могут быть константы, с обычными переменными работают через гетеры и сетеры.

werter
Сообщения: 5
Зарегистрирован: 26 мар 2014, 00:22

Re: использование статических переменных в приложении

Сообщение werter » 16 май 2014, 23:47

понятно , а как по поводу singletons использования ?

нашел тут :
If you looking at accessing the database, look at creating a database singleton.

So something like:

public class Database {

// This starts off null
private static Database mInstance;

/**
* Singleton method, will return the same object each time.
*/
public static final Database getInstance() {
// First time this method is called by Database.getInstance() from anywhere
// in your App. It will create this Object once.
if(mInstance == null) mInstance = new Database();
// Returns the created object from a statically assigned field so its never
// destroyed until you do it manually.
return mInstance;
}

//Private constructor to stop you from creating this object by accident
private Database(){
//Init db object
}

}
So then from your fragments and activities you can then place the following field in your class's (Better use use a base activity and fragment to save you repeating code).

public abstract class BaseFragment extends Fragment {

protected final Database mDatabase = Database.getInstance();

}

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: использование статических переменных в приложении

Сообщение Foenix » 17 май 2014, 00:00

ссылки на инстансы можно в принципе хранить в синглтоне (лучше класс аппликейшн сделать )
а еще лучше (если вопрос про бд) - организовать контент-провайдер, и вопрос отпадет.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить