Design pattern: il Singleton
Quando si vuole avere una sola istanza di una certa classe il singleton pattern è la soluzione ideale, qui di seguito vedremo l’implementazione in php.
Aggiornamento 2014: Il singleton è il male!
class Singleton { private static $_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