Доступ к одноэлементным полям с помощью статического метода

У меня есть одноэлементный класс.

При доступе к методам класса у меня есть выбор из двух возможностей.

  1. Создайте эти методы как специфичные для экземпляра, а затем получите экземпляр и вызовите их
  2. Создайте эти методы как статические и вызовите их, и они получат экземпляр

Например:

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();

Что лучше? Я могу придумать третью альтернативу, в которой я использую «экземпляр» непосредственно в статическом методе, а затем фиксирую исключение, если оно равно нулю, и создаю его экземпляр, а затем повторно вызываю себя.

Теоретически я мог бы просто сделать все статичным. Однако это создаст мне проблемы при сохранении состояния при закрытии активности, поскольку сериализация не сохраняет статику.

5
задан theblitz 27 December 2011 в 10:37
поделиться