Código de PHP - Patrón Factory

Imágen de perfil

Patrón Factorygráfica de visualizaciones


PHP

Publicado el 21 de Octubre del 2008 por Xavi
8.891 visualizaciones desde el 21 de Octubre del 2008. Una media de 21 por semana
El patrón Factory permita la instancia de objetos en tiempo de ejecución.
La ventaja de utilizar este patrón de diseño es que tenemos centralizada la creación de los objetos en una clase que a pedido, nos devuelve instancias de los mismos. Es una forma de tener el control de la creación de objetos.
Es llamado el patrón Factory ya que es responsable de "manufacturar" un objeto.
Ejemplo de la utilización del patrón Factory con PHP5.

Versión 1

Publicado el 21 de Octubre del 2008gráfica de visualizaciones de la versión: Versión 1
8.892 visualizaciones desde el 21 de Octubre del 2008. Una media de 21 por semana
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 patrón Factory
 *
 * El patrón Factory permita la instancia de objetos en tiempo de ejecución.
 * La ventaja de utilizar este patrón de diseño es que tenemos centralizada la
 * creación de los objetos en una clase que a pedido, nos devuelve instancias de
 * los mismos. Es una forma de tener el control de la creación de objetos.
 * Es llamado el patrón Factory ya que es responsable de "manufacturar" un objeto.
 *
 * http://www.lawebdelprogramador.com
 */
 
// Clase para la utilización de base de datos MySQL
class MySQL
{
	public function __construct()
	{
		echo "<br />Constructor MySQL";
	}
 
	// Funcion para conectar con la base de datos...
	public function connect()
	{
		//$link=mysql_connect(...);
		echo "<br />Conectar con MySQL";
	}
}
 
// Clase para la utilización de base de datos PostgreSQL
class PostgreSQL
{
	public function __construct()
	{
		echo "<br />Constructor PostgreSQL";
	}
 
	// Funcion para conectar con la base de datos
	public function connect()
	{
		//link=pg_connect(...);
		echo "<br />Conectar con PostgreSQL";
	}
}
 
class database
{
	//Funcion "static" que se puede instanciar desde fuera del objeto.
	// Tiene que recibir el nombre de la clase a instanciar
	public static function factory($type)
	{
		//Comprovamos que la clase que solicitamos exista
		if(class_exists($type))
		{
			//Devolvemos una instancia de la clase
			return new $type();
		}else
			echo "<br />Error. la case '".$type."' no existe";
		return 0;
	}
}
 
//Realizamos una instancia para el tipo de base de datos MySQL
$obj1=database::factory("MySQL");
$obj1->connect();
//Realizamos una instancia para el tipo de base de datos PostgreSQL
$obj2=database::factory("PostgreSQL");
$obj2->connect();
 
//las funciones connect, se instancian igual ya sean para MySQL como para PostgreSQL
 
?>



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

http://lwp-l.com/s1719