Los patrones de diseño son una forma de escribir código de manera más ordenada.
¿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
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
public class Principal{
public static void main(String[] args) {
Singleton singleton=Singleton.getSingleton();
singleton.ver();
}
}
--Editado
Aquí otro ejemplo del uso del patrón singleton, obtener los valores de una lista:
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);
}
}
class Singleton{
private static Singleton singleton=null;
private Singleton(){}
public static Singleton getSingleton(){
if(singleton==null){
singleton=new Singleton();
}
return singleton;
}
public void getLista(List<Integer> lista){
for(int l: lista){
System.out.println(l);
}
}
}
Aquí otro ejemplo del uso del patrón singleton, obtener los valores de una lista:
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);
}
}
class Singleton{
private static Singleton singleton=null;
private Singleton(){}
public static Singleton getSingleton(){
if(singleton==null){
singleton=new Singleton();
}
return singleton;
}
public void getLista(List<Integer> lista){
for(int l: lista){
System.out.println(l);
}
}
}
No hay comentarios:
Publicar un comentario