Ben genelde normal olmayan statik sınıflar yazmak ve nesnenin tek (sudo statik) örneklerini örneğini bir fabrika sınıfını kullanmayı tercih.
Normal başına bu şekilde yapıcı ve yıkıcı çalışmaları ve ben (örneğin ikinci DB bağlantı) isterseniz ben olmayan ek statik örneği oluşturabilirsiniz
Bunu her zaman kullanmak ve sayfa yıkıcı veritabanına oturum itecektir sonlandırıldığında gibi, özel DB mağaza oturum işleyicileri oluşturmak için özellikle yararlıdır.
Diğer bir avantajı her şeyi talep üzerine kurulum olacak gibi şeyler aramak sırasını görmezden olabilir.
class Factory {
static function &getDB ($construct_params = null)
{
static $instance;
if( ! is_object($instance) )
{
include_once("clsDB.php");
$instance = new clsDB($construct_params); // constructor will be called
}
return $instance;
}
}
DB sınıf ...
class clsDB {
$regular_public_variables = "whatever";
function __construct($construct_params) {...}
function __destruct() {...}
function getvar() { return $this->regular_public_variables; }
}
Her yerde sadece aramak kullanmak istiyorum ...
$static_instance = &Factory::getDB($somekickoff);
Sonra sadece (çünkü onlar) olmayan statik olarak tüm yöntemleri tedavi
echo $static_instance->getvar();