Sunday, May 20, 2007

Patrón Singleton + Controller

Problema:
necesitamos que la aplicación tenga una clase que controle todos los procedimientos y que la interfaz pueda comunicarse con ella para que el usuario pueda ejecutar estos procedimientos.

Solución:
Crear una clase controladora (Main.java en este ejemplo) "singleton" accesible desde la capa de la interfaz.

Ejemplo:
Clase controladora:

public class Main {

// instancia del objeto singleton
private static Main instance;

...

// devuelve la instancia singleton del objeto
public static synchronized Main getInstance() {
if ( instance == null ) {
// critical section if multithreaded application
instance = new Main();
}
return instance;
}

// metodo del controlador para un procedimiento
public Object[] A(Object[] datosInterfaz) {
...
}

...

}

Llamada del método del controlador desde la interfaz:

Main.getInstance().A(datos);

Nótese que el método getInstance es estático y público, por lo tanto se puede llamar desde una clase de la interfaz de esta manera. getInstance devuelve la instancia singleton del objeto Main (controlador de procesos), y con esta instancia única se ejecuta el método A que corresponde a algún procedimiento de la aplicación (ej: registro de usuarios, tirar los dados, guardar informacion, etc...)

No comments: