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.
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:
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); } }
