Patrón de desarrollo singleton java

0

Por admin | Para la categoría de java j2ee | noticia del 10-10-2009

El patrón de diseño singleton (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto.

El patrón singleton se implementa creando en nuestra clase un método que crea una instancia del objeto sólo si todavía no existe alguna. Para que asegurarnos que la clase solamente se puede hacer una vez, ponemos el constructor privado o protected, y creamos el new desde otro método verificando sin la instancia fué creada

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 
 
public class Singleton {
 
	// atributo de la clase que determina que una
	// que solamente se va a crear uno 
	private static Singleton unico = null;
 
	//constructor privado de la clase para 
	//que solo un método de la clase pueda crearlo
	private Singleton ()
	{
 
	}
 
    public static Singleton obtenerInstancia()
	{   
		//para asegurarnos de que es el único
		   if (unico == null)
		   {
			   unico = new Singleton();
		   }
 
 
		   return  unico;
 
 
	}
 
    private static void instancias()
    {
    	if ( unico != null)
    	{
    	    System.out.println("no se pueden crear mas instancias");
    	}
    }
 
 
 
    // método del singleton 
    public String mensaje()
    {
       return "Creada la instancia singleton";
    }
 
 
	public static void main ( String args[])
	{
	   //para crear un objeto de la clase 
	   Singleton sin = Singleton.obtenerInstancia(); 
	   String mensaje = sin.mensaje();
 
	   //sacamos por pantalla el mensaje de 
	   //Creada la instancia singleton
	   System.out.println(mensaje);
 
	   //intentamos crear una nueva instancia
	   sin= Singleton.obtenerInstancia();
 
	   //preguntamos si no hay mas instancias
	   sin.instancias();	   
 
	}	   
 
}

Salida por pantalla

singleton

Escribe un comentario