В точке входа запускается класс - родитель, так называемый, на самом нижнем уровне.
// Подключаем основные классы
include_once (ROOT_REL."/library/classes/simpleConstants.php");
include_once (ROOT_REL."/library/classes/simpleRegistry.php");
include_once (ROOT_REL."/library/classes/simpleString.php");
//класс-родитель
class base ()
{
static private $instance = null;
protected $_const;
protected $_reg;
protected $_string;
private function __construct()
{
$this->_string = //?
$this->_const = //?
$this->_string->variableFromClassString = 6;
$this->_string->variableFromClassConst = 77;
$this->_reg = simpleRegistry::getInstance();
}
public static function getInstance()
{
if(empty(self::$instance))
self::$instance = new self();
return self::$instance;
}
}
В общем проблема в следующем, Хочу сделать так, чтобы в классе-родителе создавать экземпляры всех основных важных классов следущего уровня, так, чтобы в самих этих классах уже не создавать лишних экземляров.
Вот на примере
Нужно унаследовать в этом классе
объекты _string и _const от родителя
class simpleRegistry extends base
{
static private $instance = null;
public $t = 0;
private function __construct()
{
echo $this->_string->variableFromClassString; // должно быть 6
echo $this->_const->variableFromClassConst; // 77
}
public static function getInstance()
{
if(empty(self::$instance))
self::$instance = new self();
return self::$instance;
}
}
но получается замкнутый круг какой-то.. Реально вообще сделать то, что я хочу, или все-таки придется каждый раз заного создавать экземпляры в каждом классе?
Спустя 5 часов, 39 минут, 32 секунды (26.02.2011 - 00:29) Guest написал(а):
юзай composit и не морочь себе голову с наследованием.
Класс должен быть классом какой то области, а то что хочется сделать назывется мм ... плохо вобщем называется.
Создавай приложение основное и складывай их композиты, доступ к ним можно вывести на виртальный уровень.
А вообще как всегда говорю, сначала проектирование, в помощь UML, потом реализация.
Класс должен быть классом какой то области, а то что хочется сделать назывется мм ... плохо вобщем называется.
Создавай приложение основное и складывай их композиты, доступ к ним можно вывести на виртальный уровень.
А вообще как всегда говорю, сначала проектирование, в помощь UML, потом реализация.
Спустя 14 часов, 57 минут, 55 секунд (26.02.2011 - 15:27) T1grOK написал(а):
Вообще не вкурил. Зачем в родителе создавать потомков???
"...чтобы в самих этих классах уже не создавать лишних экземляров" - хм, а как вы создадите лишний экземпляр, если у вас построение по синглтону??????
"...чтобы в самих этих классах уже не создавать лишних экземляров" - хм, а как вы создадите лишний экземпляр, если у вас построение по синглтону??????
Спустя 3 часа, 48 минут, 4 секунды (26.02.2011 - 19:15) Guest написал(а):
T1grOK
просто представьте, что есть регистратор (registry) в который по очереди добавляются объекты остальных основных классов (метод set), и тот объект который добавляется первым, например, не знает еще о существовании тех, что еще не были добавлены в регистр, и соответственно, приходится создавать эти объекты уже в самом классе (каждый раз писать параметры ит.д).
А хочется сделать так, чтобы при создании объекта, он уже знал о всех остальных объектах регистра. Но похоже это нереально сделать, все равно нужно соблюдать какой-то логический порядок.
просто представьте, что есть регистратор (registry) в который по очереди добавляются объекты остальных основных классов (метод set), и тот объект который добавляется первым, например, не знает еще о существовании тех, что еще не были добавлены в регистр, и соответственно, приходится создавать эти объекты уже в самом классе (каждый раз писать параметры ит.д).
А хочется сделать так, чтобы при создании объекта, он уже знал о всех остальных объектах регистра. Но похоже это нереально сделать, все равно нужно соблюдать какой-то логический порядок.
Спустя 1 час, 6 минут, 27 секунд (26.02.2011 - 20:21) Guest написал(а):
можно сделать с отложенной инициализацией
Спустя 3 часа, 54 минуты, 35 секунд (27.02.2011 - 00:16) Guest написал(а):
Guest
можно попродробнее?
можно попродробнее?