Страница 1 из 1
использование статических переменных в приложении
Добавлено: 16 май 2014, 20:31
werter
собственно у меня вопрос :
считается ли дурным тоном использование статических переменных ?
как бы очень удобно иметь доступ к переменной с любого фрагмента или Activity.
насколько нормальная это практика ?
Re: использование статических переменных в приложении
Добавлено: 16 май 2014, 20:36
Donart
werter писал(а):насколько нормальная это практика ?
Такой практики нет и это не нормально, нарушается принцип инкапсуляции. Статическими могут быть константы, с обычными переменными работают через гетеры и сетеры.
Re: использование статических переменных в приложении
Добавлено: 16 май 2014, 23:47
werter
понятно , а как по поводу 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();
}
Re: использование статических переменных в приложении
Добавлено: 17 май 2014, 00:00
Foenix
ссылки на инстансы можно в принципе хранить в синглтоне (лучше класс аппликейшн сделать )
а еще лучше (если вопрос про бд) - организовать контент-провайдер, и вопрос отпадет.