У меня есть одноэлементный класс.
При доступе к методам класса у меня есть выбор из двух возможностей.
Например:
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();
Что лучше? Я могу придумать третью альтернативу, в которой я использую «экземпляр» непосредственно в статическом методе, а затем фиксирую исключение, если оно равно нулю, и создаю его экземпляр, а затем повторно вызываю себя.
Теоретически я мог бы просто сделать все статичным. Однако это создаст мне проблемы при сохранении состояния при закрытии активности, поскольку сериализация не сохраняет статику.