Tengo una clase singleton.Acceda a los campos de Singleton a través de un método estático
Al acceder a los métodos de la clase, tengo la opción de dos posibilidades.
- crear esos métodos como instancia específica y luego obtener la instancia y las invoquen
- crear esos métodos como estáticos e invocan ellos y sus hijos recibirán la instancia
Por ejemplo:
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;}
}
Ahora, en otro lugar puedo escribir
int x = Test.getInstance().method1();
int y = Test.method2();
¿Qué es mejor? Puedo pensar en una tercera alternativa donde uso "instancia" directamente en el método estático y luego capturar la excepción si es nula e instanciarla y luego volver a invocarla.
Podría, en teoría, simplemente hacer que el lote estético. Sin embargo, esto me creará problemas al guardar el estado en la actividad cerrada ya que la serialización no guarda estática.
Iré con 'Test.method2();' ya que transmite el hecho de que 'method2()' es un método estático. – TheVillageIdiot