Design pattern: il Singleton
Domenica, Febbraio 24th, 2008Quando si vuole avere una sola istanza di una certa classe il singleton pattern è la soluzione ideale, qui di seguito vedremo l’implementazione in php.
class Singleton
{
private $_instance;
public static function getInstance()
{
if(is_null(self::$_instance))
{
self::$_instance = new self();
}
return self::$_instance;
}
...
}
Come avrete notato l’istanza viene creata solo alla prima chiamata di getInstance() (lazy initialization).
Questa implementazione è corretta per quanto riguarda php ma In altri linguaggi come Java, dove l’avere più thread concorrenti è la normalità, occorre garantire la mutua esclusione in quanto la creazione della prima istanza è una corsa critica.
Approfondimenti: wikipedia