Videotutorial: Patrones de diseño en PHP – Singleton Pattern

Hoy os traigo el primero de una serie de videos cortos en los que voy a explicar algunos de los patrones diseño OOP más comunes en PHP. Un patrón de diseño consiste en una solución a un problema común en el desarrollo de software. En el caso de PHP, estos patrones son los que nos permiten aprovechar realmente toda la potencia de orientación a objetos de PHP5. Estos videos no pretenden ser tutoriales exhaustivos, sino simplemente una visión general y rápida de en qué consiste cada patrón, para aquellos que no estén familiarizados con esta metodología.

Empezaremos con el patrón Singleton, ya que es el más fácil de entender y utilizar. Hay varias maneras de implementar una clase singleton, pero aquí os voy a mostrar la forma más sencilla.

Ver screencast (duración: 6:00)

Podéis ver el resto de screencasts en la página de videotutoriales, o suscribiros al podcast de iTunes.

¿Qué es un Singleton?

Un singleton consiste en una clase que solo puede tener una instancia y provee de un punto global de acceso a ella. Para ello se crea una instancia de la clase la primera vez que se referencia, y se devuelve ésta en posteriores llamadas. Esto ayuda a crear clases reusables y no depender de variables globales.

Un claro ejemplo de uso es cuando diseñamos una clase para gestionar la conexion y querys con la base de datos. A lo largo de nuestro script crearemos instancias de esa clase, pero nos interesa que siempre sea la misma ya que todas las conexiones compartirán los mismos parámetros y solo cambiará el contenido del query, por lo que no necesitamos una nueva instancia cada vez, consiguiendo con ello una mejora en el rendimiento.

Ejemplo de implementación

class Singleton
{
	private static $singleInstancia;
 
	private function __construct(){ }
 
	public static function getInstancia(){
		if(!self::$singleInstancia){
			self::$singleInstancia = new self();
		}
		return self::$singleInstancia;
	}
 
        /* A partir de aquí vamos añadiendo los métodos la clase */
	function Metodo(){
		var_dump(self::$singleInstancia);
	}
 
}

Usaremos la clase de esta manera:

$mysingleton = Singleton::getInstancia();
$mysingleton->Metodo();

Para hacer nuestro singleton más robusto podríamos definir algunos de los metódos ‘mágicos’ de PHP para evitar el clonado y manejar la serialización, pero los he omitido para mantener la sencillez del ejemplo.

Si te ha gustado este artículo, por favor compártelo:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • Meneame
  • StumbleUpon
  • Tumblr
  • Twitter

3 comentarios para “Videotutorial: Patrones de diseño en PHP – Singleton Pattern”

  1. [...] This post was mentioned on Twitter by programania, David Rojas. David Rojas said: Nuevo en el blog: 'Videotutorial: Patrones de diseño en PHP – Singleton Pattern' http://bit.ly/cjF8En [...]

  2. Nicho dice:

    Oye pues que interesante está esto, comprendí la lógica de ello, pero aún necesitaría pensar en qué aplicarlo, ya que ahora que conosco codeigniter y que gracias a tí he aprendido mucho de él, pues ahora he estado elaborando algunas aplicaciones de manera rápida y sencilla.

  3. daniel dice:

    El patrón Singleton se aplica mucho en la conexión a la base de datos.

Deja un comentario

Introduce tu información personal en el formulario, regístrate o identifícate usando twitter con el siguiente botón.

RSS iTunes podcast Twitter

Categorías

Mi Amazon whislist: Regálame un libro!

Archivos