iCarsOnline

iCarsOnline

your online auto source!

Gyanamala

Gyanamala

Healing is simple

Abogado Garza

Abogado Garza

Lawyer Web Page

Reaching in to Heaven

Reaching in to Heaven

Artistic Expression

Primero precisamos lo que significa Patrón Singleton.

El Patrón Singleton, garantiza que una clase posea una sola instancia, y suministra un punto de acceso global a ella.

singleton

Un caso hipotético de aplicación podría ser: tenemos una clase BaseDeDatos que nos devuelve un objeto llamado “bd” una vez creada la conexión con la base de datos. En vez de permitir que las aplicaciones usen libremente la clase y puedan crear tantas instancias del objeto “Base de Datos” como aplicaciones y accesos a bases existan, se decide restringir la creación a una sola instancia y esta será compartida y usada por todos.

<?php
interface ISingleton
{
/**
* Método que va a devolver la instancia Singleton
* @return (Singleton)
*/
public static function getInstance();
}
?> 

Un ejemplo claro.

Una Clase (Singleton) Config. “Config” para los amigos, que no es otra que la encargada de mantener la configuración del acceso a la base de datos y algunas otras cosas, como límites, nombres, etc.

Su uso es muy simple, se agrega el atributo, se lo inicializa, y listo.

<?php
class Config implements ISingleton{
	// Definimos el atributo que guarda la instancia del Singleton
private static $config = null;

	/**
	 * Retorna la clase Singleton si existe en memoria
	 * Si no existe, crea una nueva
	 * @return (Singleton)
	 */
	 public static function getInstance()
	 {
		if ( self::$config == null ):
	  		self::$config = new Config();
	  	endif;
	     return self::$config;
	 }
	// Prevenir a los usuarios de poder clonar la instancia
    public function __clone() {}
}
?>

Para usar una de las configuraciones, podemos simplemente:

<?php
$config = config::getInstance();
$config->db['host']		= 'localhost';
$config->db['user']		= 'root';
$config->db['pwd']		= '';
$config->db['name']		= 'motor';
$config->db['type']		= 'mysql';
?>

Fácil de conservar, de actualizar y acceder.

Referencias

Categorizado: Desarrollo Web
Etiquetado: | | |

Comparte esta noticia:

Articulos Relacionados

    Danos tu opinion sobre esta noticia.

    CalinSoft se reserva el derecho de eliminar o editar todo comentario que considere ofensivo o difamatorio. Debatir, criticar NO ES INSULTAR.