Está en la página 1de 2

Singleton

Un Singleton asegura que slo exista una instancia de una determinada clase y ofrece un punto de acceso global a esa instancia. El singleton es un Patrn Creacional del "Gang of Four" (La Banda de los Cuatro). A menudo se utiliza el patrn singleton para implementar clases de bases de datos, registros, controladores frontales u objetos de peticin y respuesta. Ejemplo #2 Ejemplo de Singleton
<?php class Ejemplo { private static $instancia; private $count = 0; private function __construct() { } public static function singleton() { if (!isset(self::$instancia)) { echo 'Creando nueva instancia.'; $nombreClase = __CLASS__; self::$instancia = new $nombreClase; } return self::$instancia; } public function incremento() { echo $this->count++; } public function __clone() { trigger_error('No se permite la clonacin.', E_USER_ERROR); } public function __wakeup() { trigger_error('No se permite deserializar.', E_USER_ERROR); } } ?>

A continuacin se ilustra cmo se comporta el Singleton


<?php $singleton = Ejemplo::singleton(); // imprime "Creando nueva instancia ." echo $singleton->incremento(); // 0 echo $singleton->incremento(); // 1 $singleton = Ejemplo::singleton(); // reutiliza la instancia ya existe nte

echo $singleton->incremento(); // 2 echo $singleton->incremento(); // 3 // todos estos emitirn un Error Fatal $singleton2 = new Ejemplo; $singleton3 = clone $singleton; $singleton4 = unserialize(serialize($singleton)); ?>

También podría gustarte