sábado, 19 de enero de 2013

Ejemplo de patrón de diseño Singleton



Los patrones de diseño son una forma de escribir código de manera más ordenada.

Los patrones se dividen en tres grandes grupos: 
  • Creacionales → Cómo instanciar objetos de manera flexible. 
  • Estructurales → Cómo organizar clases y objetos para formar estructuras más grandes. - 
  • Comportamentales → Cómo gestionar la comunicación y responsabilidades entre objetos.
Nos enfocaremos en el patrón Singleton. El cuales es un patrón de diseño de software que restringe la instanciación de una clase a una sola instancia. ¿Para qué sirve el patrón Singleton?
Crear una instancia única de una clase.  Se me ocurre que necesito obtener una lista de registros de una base de datos.

Singleton en la vida real
Las clases java.langMath y java.lang.Runtime de Java son un ejemplo del patrón Singleton.


Ejemplo. Definir una clase que siga este patrón y muestre su nombre.

Singleton.java

package com.inforhomex.app;

public class Singleton{

 private static Singleton singleton=null;

 private Singleton(){}

 public static Singleton getSingleton(){
  if(singleton==null){
   singleton=new Singleton();
  }
  return singleton;
 }
//aqui muestra el nombre 'Singleton'
 public void ver(){
  System.out.println("Estoy desde la clase: "+this.getClass().getName());
 }
}

Ahora la clase principal:

Principal.java
package com.inforhomex.app;

public class Principal{
 public static void main(String[] args) {
  Singleton singleton=Singleton.getSingleton();
  singleton.ver();
 }
}

Actualización:
Aquí otro ejemplo del uso del patrón singleton, obtener los valores de una lista:
package com.inforhomex.app;

import java.util.List;
import java.util.ArrayList;

public class Codemonkey{
  public static void main(String[] args) {
    List<Integer> lista =new ArrayList<Integer>();
    lista.add(12);
    lista.add(3);
    lista.add(90);
    lista.add(32);
    lista.add(8);

    Singleton ejemplo=Singleton.getSingleton();
    ejemplo.getLista(lista);
  }
}



WebSockets: un canal permanente para enviar y recibir datos

Los WebSockets son un protocolo que permite comunicación bidireccional en tiempo real entre cliente y servidor, a diferencia de HTTP que ...

Etiquetas

Archivo del blog