У меня есть одноэлементный класс.
При доступе к методам класса у меня есть выбор из двух возможностей.
- Создайте эти методы как специфичные для экземпляра, а затем получите экземпляри вызовите их
- Создайте эти методы как статические и вызовите их, и они получат экземпляр
Например:
Class Test{
private int field1;
Test instance;
private Test(){};
private Test getInstance(){
if (instance == null)
instance = new Test();
return instance;
}
public int method1() { return field1;}
public static int method2() {return getInstance().field1;}
}
Теперь в другом месте я могу написать
int x = Test.getInstance().method1();
int y = Test.method2();
Что лучше?Я могу придумать третью альтернативу, где я использую «экземпляр» непосредственно в статическом методе, а затем перехватываю исключение, если оно пустое, и создаю его экземпляр, а затем повторно вызываю сам себя.сделать все статичным.Тем не менее, это создаст проблемы при сохранении состояния при закрытии активности, поскольку сериализация не сохраняет статические данные.