[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: путаница с наследованием
Guest
Хочу попробовать полностью построить структуру сайта ООП, но в голове каша.

В точке входа запускается класс - родитель, так называемый, на самом нижнем уровне.

// Подключаем основные классы

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, потом реализация.

Спустя 14 часов, 57 минут, 55 секунд (26.02.2011 - 15:27) T1grOK написал(а):
Вообще не вкурил. Зачем в родителе создавать потомков???
"...чтобы в самих этих классах уже не создавать лишних экземляров" - хм, а как вы создадите лишний экземпляр, если у вас построение по синглтону??????

Спустя 3 часа, 48 минут, 4 секунды (26.02.2011 - 19:15) Guest написал(а):
T1grOK
просто представьте, что есть регистратор (registry) в который по очереди добавляются объекты остальных основных классов (метод set), и тот объект который добавляется первым, например, не знает еще о существовании тех, что еще не были добавлены в регистр, и соответственно, приходится создавать эти объекты уже в самом классе (каждый раз писать параметры ит.д).

А хочется сделать так, чтобы при создании объекта, он уже знал о всех остальных объектах регистра. Но похоже это нереально сделать, все равно нужно соблюдать какой-то логический порядок.


Спустя 1 час, 6 минут, 27 секунд (26.02.2011 - 20:21) Guest написал(а):
можно сделать с отложенной инициализацией

Спустя 3 часа, 54 минуты, 35 секунд (27.02.2011 - 00:16) Guest написал(а):
Guest

можно попродробнее?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.