Benim ilk nesne fabrika kodlama yaşıyorum ve orada varsa ben ikinci nesnesi oluştururken başka içine bir nesne geçen herhangi bir sakıncaları merak ediyorum, ve daha sonra kullanılmak üzere saniye içinde ilk nesneyi tasarruf?
Örnek:
class main
{
public $connection = array();
// various other useful functions that should be loaded on every page here
// these other functions would be convenient to have avail for
// new objects in different classes
function dbconnect($db) {
if(!isset($this->connection[$db])) {
switch($db) {
case "users":
$connection = @mysql_connect(info,info,info);
$db_select = @mysql_select_db(info,$connection);
$this->connection[$db] = $connection;
break;
case "ads":
$connection = mysql_connect(info,info,info);
$db_select = mysql_select_db(info,$connection);
$this->connection[$db] = $connection;
break;
default:
die($db . " is not a recognized database.");
break;
}
}
return $this->connection[$db];
}
// note how i pass $this into the new object in this function
function create($class,$params=null) {
if(!class_exists($class) && !$this->load($class)) {
die($class . " is not a recognized class.");
}else{
return new $class($this,$params);
}
}
function load($file) {
$file = $_SERVER['DOCUMENT_ROOT'] . "/classes/" . $file . ".class.php";
if(file_exists($file)) {
return require_once($file);
}else{
return false;
}
}
}
class secondary {
private $connection;
private $mainObj;
private $params;
function __construct($mainObj,$params) {
$this->mainObj = $mainObj;
$this->params = $params;
$this->connection = $mainObj->dbconnect('users');
}
}
Burada gördüğünüz gibi, fabrika tarafından oluşturulan herhangi bir sınıf elverişli sınıf küresellerle kullanmak zorunda kalmadan ... onu (ve diğer ortak / kullanışlı fonksiyonlar) gerektiriyorsa MySQL db bağlanmak, ya da içeri birçok şeyi geçmek yeteneğine sahiptir
Bu istikrarlı bir yolu var mı? Ben yeni duyuyorum, ve bu yanlış neden bazı iyi teori / okulunu kullanabilirsiniz - bu ise.