Código de PHP - Patrón Singletone

Imágen de perfil
Val: 1.009
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Patrón Singletonegráfica de visualizaciones


PHP

Publicado el 21 de Octubre del 2008 por Xavi (548 códigos)
5.581 visualizaciones desde el 21 de Octubre del 2008
El patrón Singleton se aplica a situaciones en las cuales hay la necesidad de tener una sola instancia de una clase.
Ejemplo de la utilización del patrón Singletone con PHP5.

Versión 1

Publicado el 21 de Octubre del 2008gráfica de visualizaciones de la versión: Versión 1
5.582 visualizaciones desde el 21 de Octubre del 2008
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
66
67
68
69
70
71
72
<?php
/*
 * Ejemplo de la utilización del patron Singletone
 *
 * El patrón Singleton se aplica a situaciones en las cuales hay la necesidad de
 * tener una sola instancia de una clase.
 *
 * http://www.lawebdelprogramador.com
 */
 
class Ejemplo
{
	// Hold an instance of the class
	private static $instance;
 
	// A private constructor; prevents direct creation of object
	private function __construct()
	{
		echo '<br />Se ejecuta el constructor';
	}
 
	/*
	 * El metodo singleton
	 * Declarar miembros de clases o métodos como estáticos, los hace accesibles
	 * desde afuera del contexto del objeto
	 */
	public static function singleton()
	{
		# Si no esta establecida la variable self::$instance la creamos
		if (!isset(self::$instance)) {
			# Cogemos el nombre de la clase
			# __CLASS__ es una constante predefinida que devuelve el nombre de
			# la clase.
			$className = __CLASS__;
			# Creamos la instanacia a la clase "Ejemplo"
			# La variable self::$instance contendra la referencia a la clase
			self::$instance = new $className;
		}
		# Siempre devolvemos la instanacia a la clase "Ejemplo"
		return self::$instance;
	}
 
	// Metodo de ejemplo
	public function metodoEjemplo()
	{
		echo '<br />un metodo como cualquier otro...';
	}
 
	// No se permite clonar la instancia, por eso es privada
	private function __clone()
	{
	}
}
 
/*
 * Esto no funcionaria, ya que el constructor es privado
 * $test = new Example;
 */
 
# Creamos la instancia a la clase
$test = Ejemplo::singleton();
$test->metodoEjemplo();
# Como ya se ha creado la instancia, nos devolvera la misma instancia que a $test
# No se ejecutara el constructor
$test2 = Ejemplo::singleton();
$test2->metodoEjemplo();
 
/*
 * Si intentamos clonar la clase, lanzará un error...
 * $test_clone = clone($test);
 */
?>



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s1718