informaticaPC

Patrones de Diseño Software


Regístrate

Tus datos no serán compartidos, solo nosotros te enviaremos información y novedades

Singleton

Utilizaremos el patrón Singleton cuando por alguna razón necesitemos que exista sólo una instancia (un objeto) de una determinada Clase.

Dicha clase se creará de forma que tenga una propiedad estática y un constructor privado, así como un método público estático que será el encargado de crear la instancia (cuando no exista) y guardar una referencia a la misma en la propiedad estática (devolviendo ésta).

Singleton en UML

En el siguiente código en Java mostramos un ejemplo de uso de este patrón de diseño, en el que se intenta obtener cinco veces una instancia de la clase Coche:

Main.java:

package Singleton;

public class Main
{
    public static void main(String[] args)
    {
        for(int num=1; num<=5; num++)
        {
           Coche.getInstancia();
        }
    }
}

Coche.java:

package Singleton;

public class Coche
{
    private static Coche instancia;

    // ----------------------------------------

    private Coche() {
    }

    // ----------------------------------------

    public static Coche getInstancia()
    {
        if (instancia == null) {
            instancia = new Coche();
            System.out.println("El objeto ha sido creado");
        }
        else {
            System.out.println("Ya existe el objeto");
        }

        return instancia;
    }
}

Al ejecutarlo siempre obtendremos lo siguiente:

Ejemplo

EXPLICACIÓN:

  • Cada vez que se procesa el bucle for se realiza una llamada al método getInstancia() de la clase Coche, devolviéndose siempre una misma instancia (un sólo objeto) de dicha clase (que será creada la primera vez que se llame a dicho método).
Primera página Anterior Siguiente Última página
Usamos cookies para ofrecerte una experiencia mejorada, el continuar navegando supone que aceptas su uso