Eğer bir tür yeni nesneler oluşturur ve bu factroy sınıfı bu gibi bir tek bir fabrika sınıfını olsaydı:
class Database_Factory extends Base_Factory {
private static $factory;
private $objects = array();
public function __get($profile) {
// check for object and return it if it's created before
}
public static function getInstance(){
if (!self::$factory)
self::$factory = new self();
return self::$factory;
}
}
Aynı kod bazı nesne o kendi fabrika ihtiyacı her zaman tekrarlar. Yani ben bu fabrika sınıfı soyut yapmak ve her fabrika için yalnızca belirli rutinleri uygulamaya karar verdi. Ama PHP soyut sınıf örneğini izin vermez.
abstract class Base_Factory {
public static function getInstance(){
if (!self::$factory)
self::$factory = new self();
return self::$factory;
}
}
Ölümcül hata: soyut sınıf Base_Factory örneğini olamaz
Sen ne yapardın?