Я начал изучать Android с помощью Android Big Nerd Ranch. Листинг 9.1 Настройка синглтона (CrimeLab.java)Singleton and Context
public class CrimeLab {
private static CrimeLab sCrimeLab;
private Context mAppContext;
private CrimeLab(Context appContext) {
mAppContext = appContext;
}
public static CrimeLab get(Context c) {
if (sCrimeLab == null) {
sCrimeLab = new CrimeLab(c.getApplicationContext());
}
return sCrimeLab;
}
}
Project- мы создаем список объектов преступлений, и мы использовали этот класс для хранения списка.
У меня возникли проблемы с пониманием необходимости класса Singleton, приведенного в листинге 9.1. Зачем нам этот класс в первую очередь? и зачем нужна переменная контекста и что она удерживает?
Я искал google и узнал, что этот контекст используется для информирования о том, что происходит с другими частями приложения. Однако я не совсем понял, о чем мы сообщаем CrimeLab? Можем ли мы создать crimeLab без одноэлементного класса? если да, почему мы использовали crimeLab как одноэлементный класс?
Oh! и нам нужен контекст, чтобы сообщить приложению, что произошло, чтобы все данные аккуратно накапливались в одном месте. Я прав? Большое спасибо –
Нет, нам просто нужен контекст здесь, если мы * нуждаемся в его информации для объекта CrimeLab. В противном случае вы можете удалить его, поскольку это сам параметр. Данные находятся в одном месте только из-за применения singleton (статическое свойство): private static CrimeLab sCrimeLab; –