He preguntado sobre cómo obtener una instancia única de clase de otra clase recientemente.Diferentes referencias de objetos para el mismo objeto (?)
(How to get specific instance of class from another class in Java?)
lo tanto, yo estoy tratando de hacer que funcione:
Mi Application
:
public class Application
{
// I will always have only one instance of Application
private static Application _application;
// Every instance of Application (one in my case) should have its own View
private View view;
// Constructor for new instance of Application
private Application()
{
view = new View();
}
// Getter for my unique instance of Application
public static Application getSharedApplication()
{
if (_application == null)
_application = new Application();
return _application;
}
// Main class
public static void main(String[] args)
{
// So I'm accessing my instance of Application
Application application1 = getSharedApplication();
// Here is object reference
System.out.println(application1);
// And now I'm accessing the same instance of Application through instance of View
Application application2 = application1.view.getApplication();
// Here is object reference
System.out.println(application2);
}
}
Mi View
:
public class View
{
// I'm accessing my instance of Application again
public static Application application = Application.getSharedApplication();
// This method should return my unique instance of Application
public Application getApplication()
{
return application;
}
}
El problema es que main
método devuelve diferente referencias de objetos.
[email protected]
[email protected]
¿Qué pasa con mi código?
Se utiliza una embarazos únicos y otras formas de estado global, eso es lo que está mal con él. –
¿Por qué no utilizar enumeraciones cuando necesita Singletons? –