4 апр. 2011 г.

Singleton - шаблон проектирования

=== Пример на PHP 5 ===

<?php

class Singleton {



  protected static $instance; // object instance


  /**

   * Защищаем от создания через new Singleton

   *

   * @return Singleton

   */

  private function __construct() { /* ... */ }


  /**

   * Защищаем от создания через колонирование

   *

   * @return Singleton

   */

  private function __clone() { /* ... */ }


  /**

   * Возвращает единственный экземпляр класса

   *

   * @return Singleton

   */

  public static function getInstance() {

    if ( is_null(self::$instance) ) {

      self::$instance = new self;

    }

    return self::$instance;

  }


  public function doAction() { /* ... */ }


}


//usage

Singleton::getInstance()->doAction();

?>


* This source code was highlighted with Source Code Highlighter.