Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Взаимодействие несвязанных экземпляров между собой 
:(
    Опции темы
Xplod
Дата 8.1.2011, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.6.2007

Репутация: нет
Всего: 1



Здравствуйте!

Стоит задача создать объект разделенный на три уровня (доступа) и в каждый загружать неопределенное количество несвязных между собой экземпляров классов и дать им возможность общаться друг с другом и экземлярами выше.

Есть пример расскрывающую суть задумки, но и есть проблема данной реализации это - изолированость экземляров, кроме самого последнего, он то как раз и имеет доступ ко всем. Ошибка кроется в наследовании родительского класса, так как на момент инициализации родительский класс, а именно свойство родительского где храняться экзампляры, пустое. 

Код

<?php

//Классы библиотек

class Db extends Library
{
    function query(){
        
        ...
    }
    
}

class SQLite extends Library
{
    function query(){
        
        ...
    }
    
}

//Классы Моделей

class ModComment extends Models
{
    function get(){
        
        $this->getLib('db')->query('...');
    }
    
}

class ModNews extends Models
{
    function get(){
        
        $this->getLib('db')->query('...');
    }
    
}


class Library
{    
    
    final function getLib($name)
    {
        return $this->dataLib[$name];
    }
    
    final function setLib($name, $value)
    {
        $this->dataLib[$name] = $value;
    }
    
    public $dataLib = array();
    
}

class Models extends Library
{    
    
    final function getMod($name)
    {
        return $this->dataMod[$name];
    }
    
    final function setMod($name, $value)
    {
        $this->dataMod[$name] = $value;
    }
    
    public $dataMod = array();

}

class Controller extends Models
{    
    
    function main()
    {
        return $this->getMod('comment')->get();
    }

}


$test = new Controller;
$test->setLib('db', new Db);
$test->setMod('comment', new ModComment);
$test->setMod('news', new ModNews);
$test->main();

?>


Подскажите стоит ли пилить это код или уже есть другие паттерны дающие возможность создать аналогичный объект?

PM MAIL   Вверх
gta4kv
Дата 8.1.2011, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Singleton?
PM MAIL   Вверх
Xplod
Дата 8.1.2011, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.6.2007

Репутация: нет
Всего: 1



объект как раз и создаеться внутри Singleton, задача чем его создать внутри, при этом стоит учесть что объектов будет несколько и все они будут храниться свойстве Singleton
PM MAIL   Вверх
Shogun
Дата 10.1.2011, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сёгун-сан
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 8.6.2006
Где: Кишинёв

Репутация: нет
Всего: 11



Хммм Registry? 


--------------------
2b || !2b
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0427 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.