Apie | Registracija

El. pašto adresas: Slaptažodis: Registracija.. Užmiršote slaptažodį..

Objektinio programų projektavimo šablonai PHP kalboje



Fabrikas

Fabriko šablonas leidžia objektų kūrimą vykdymo metu. Jis yra vadinamas Fabriko šablonu, kadangi yra atsakingas už objektų sukūrimą. Parametrizuotas Fabrikas gauna vardą klasės, kurią reikia sukurti.

<?php
class Example
{
// The parameterized factory method
public static function factory($type)
{
if (include_once 'Drivers/' . $type . '.php') {
$classname = 'Driver_' . $type;
return new $classname;
} else {
throw new Exception ('Driver not found');
}
}
}
?>
<?php
  // Load a MySQL Driver
  $mysql = Example::factory('MySQL');
  // Load a SQLite Driver
  $sqlite = Example::factory('SQLite');
?> 

Singleton

Singleton šablonas naudojamas tokiose situacijose kuomet reikia sukurti vieną klasės instanciją. Dažniausias šio šablono panaudojimo atvejis yra duomenų bazės prisijungimas. Šio šablono įgyvendinimas leidžia programuotojui sukurti vieną instanciją, kuri gali būti nesunkiai pasiekiamas kitų objektų.

<?php
class Example
{
  // Hold an instance of the class
  private static $instance;
  
  // A private constructor; prevents direct creation of object
  private function __construct()
  {
    echo 'I am constructed';
  }
  
  // The singleton method
  public static function singleton()
  {
    if (!isset(self::$instance)) {
      $c = __CLASS__;
      self::$instance = new $c;
    }
    return self::$instance;
  }
  
  // Example method
  public function bark()
  {
    echo 'Woof!';
  }
  
  // Prevent users to clone the instance
  public function __clone()
  {
    trigger_error('Clone is not allowed.', E_USER_ERROR);
  }
}
?>
<?php
  // This would fail because the constructor is private
  $test = new Example;
  
  // This will always retrieve a single instance of the class
  $test = Example::singleton();
  $test->bark();
  
  // This will issue an E_USER_ERROR.
  $test_clone = clone $test;
?>

Facebook


Peržiūrėti visus komentarus

Susiję kursai

Temos



ITbazė - informacinių technologijų naujienos

www.prodesign.lt

Draugai

skelbimaistudentui.lt
Skelbimai studentui

elegantepress.lt
Elegantiškos spaudos studija

2trip.lt
Maršrutai, kelionių aprašymai

© Sigitas Drąsutis 2006-2009. Kopijuoti ir platinti be autorių sutikimo draudžiama. Kontaktai | Taisyklės

veltinis.lt | verinys.lt | mezginys.lt | nerinys.lt | piesinys.lt | siuvinys.lt | dirbinys.lt | audinys.lt | testuok.lt | freecomponent.com

Hey.lt - Interneto reitingai, lankomumo statistika, lankytojų skaitliukai