marți, 16 octombrie 2012

Singleton pattern

SINGLETON PATTERN

Definitie: Singletonul este o clasa speciala care genereaza doar o instanta de obiect.

Singletonul este similar unei variabile globale, permitand in plus adaugarea de elemente logice.

Acest tip de clasa este util atunci cand vrei ca obiectul sa poate fi accesat de oriunde din aplicatie, si mai ales atunci cand contine o cantitate mare de resurse si e ineficient de instantiat de mai multe ori. Are trei caracteristici principale:
  • o proprietate statica privata ce pastreaza singura instanta - nu poate fi accesata din afara clasei;
  • o metoda publica statica ce intoarce singura instanta;
  • un constructor privat - nu permite instantierea directa a obiectului;
Exemplu:
class Singleton
{
  static private $instance=NULL;

  private function __construct() {
    //poate fi si gol sau poate contine initializari
  }

  static public function getInstance() {
    if (self::$instance==NULL) {
      self::instance=new Singleton();
    }
    return self::$instance;
  }
  
  //nu permite clonarea obiectului
  protected function __clone() {}
}

Niciun comentariu:

Trimiteți un comentariu