informaticaPC

Patrones de Diseño Software


Regístrate

Los datos recopilados tienen como finalidad el envío de novedades sobre contenidos formativos propios (tanto en modalidad gratuita como de pago) y de terceros en calidad de afiliado, así como también noticias, información y otros contenidos relacionados con la informática y las nuevas tecnologías, siendo responsable de dicha información Francisco Javier Medina Medina (propietario de InformaticaPC.com).
Al obtener tu consentimiento los datos serán almacenados en el proveedor de E-Mail marketing MailRelay.
Por supuesto, en cualquier momento podrás hacer uso de tus derechos para acceder, rectificar, limitar y suprimir dichos datos.

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