Inicio > General, Php, Programación > El patrón Singleton

El patrón Singleton

Domingo, 1 de Noviembre de 2009

Este patrón de diseño nos permite crear una sola instancia de una clase que puede ser accesada en cualquier parte de nuestro sistema, aunque puede ser tomado como si fuera una variable globals es algo diferente.

Normalmente el Singleton se utiliza cuando se requiere conservar propiedades durante el tiempo de vida de la applicación, es decir, en lo que dura la ejecución de la página actual.

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
<?php 
class UsersOnline
{
	private $arrUsers = array();
	private static $oInstance;
 
	private function __construct() { }
 
	public static function getInstance()
	{
		if (empty(self::$oInstance)) {
			self::$oInstance = new UsersOnline();
		}
 
		return self::$oInstance;
	}
 
	public function setUser($numId, $oUser)
	{
		$this->arrUsers[$numId] = $oUser;  
	}
 
	public function getUser($numId)
	{
		return $this->arrUsers[$numId];
	}
}
?>

Ahora veamos como se utiliza por medio de un pequeño trozo de código.

1
2
3
4
5
6
7
8
9
10
<?php
include_once './UsersOnline.php';
 
$oSingleton = UsersOnline::getInstance();
$oSingleton->setUser(12345, array('name' => 'jorge'));
 
unset($oSingleton);
 
$oOtherInstance = UsersOnline::getInstance();
var_dump($oOtherInstance->getUser(12345));

La salida del script anterior nos muestra que aunque se boro la instancia $oSingleton por medio de unset(), las propiedades siguen aun existiendo.

array(1) {
  ["name"]=>
  string(5) "jorge"
}
Share and Enjoy:
  • Twitter
  • Digg
  • del.icio.us
  • Google Bookmarks
  • BarraPunto
  • LinkedIn
  • Live
  • RSS
  • MySpace
  • Facebook

jorge.cortes General, Php, Programación , ,

(1 votes, average: 5.00 out of 5)
Loading ... Loading ...

  1. Comentar yet.
  1. Sin trackbacks aún.
Get Adobe Flash playerPlugin by wpburn.com wordpress themes