Множественное наследование

windoctor

Новичок
Множественное наследование

Добрый вечер.

Возник вопрос, хотелось бы получить ответ.


Как реализуется множественное наследование в php5?

В с всё просто

class a extends b,c,d{}


А в php такая фишка не работает.

Читал про интерфейсы, но видимо либо я чего то не понял либо тоже что-то не то.

Мне нужно :

есть

class a{методы}

class b{методы}

class c{методы}


Мне хотелось бы унаследовать 2 класса.


Знаю что можно сделать так:

class b {}

class a extends b

class c extends a

Но кажется что это изврат и можно сделать всё изящней.

Заранее благодарю за ответы.
 

HraKK

Мудак
Команда форума
никак
Можно поизвращатся с интерфейсами. А чистое как в С нельзя
 

windoctor

Новичок
Ну мне необязательно как в с, это я так к примеру, просто мне нужно унаследовать методы с 2-х других классов
 

HraKK

Мудак
Команда форума
Код:
class b {}

class a {}
class c 
{
    private $a;
    private $b;
    function __construct()
    {
        $this->a = new a();
        $this->b = new b();
    }
}
-~{}~ 02.06.07 21:28:

Множественное наследование - абсолютно ненужная фича в теории ООП, и это доказанный факт. Ни при каких-либо то ни было обстоятельствах.(c)
 

Crazy

Developer
Автор оригинала: HraKK
Множественное наследование - абсолютно ненужная фича в теории ООП, и это доказанный факт. Ни при каких-либо то ни было обстоятельствах.(c)
Ссылку на доказательство не напомните?
 

HraKK

Мудак
Команда форума
Гравицапа
Я думаю мы друг друга поняли)

-~{}~ 02.06.07 21:31:

Crazy
Не на помню. Сам не помню, но полность согласен с автором
 

Crazy

Developer
Автор оригинала: HraKK
Не на помню. Сам не помню, но полность согласен с автором
Из серии "есть два слова, которыми можно добиться от женщины чего угодно. Но их никто не знает."

Иначе говоря, нет такого. Спасибо.
 

HraKK

Мудак
Команда форума
не хочу спорить ) Нету стандартов ООП, поэтому мнений может быть сколько угодно.

-~{}~ 02.06.07 21:36:

Из серии "есть два слова, которыми можно добиться от женщины чего угодно. Но их никто не знает."
Есть. Я доводы на жту тему еще 3 года назад читал. А самое главное на практике отработал и пришел к тому же выводу. У Вас другое мнение?
 

windoctor

Новичок
Понял, значит скорей всего у меня с архитектурой проблемы, буду перестраивать.
 

Crazy

Developer
Автор оригинала: HraKK
Я доводы на жту тему еще 3 года назад читал.
Я доводы на эту тему читаю уже лет 10. А доказательств видел ровно 0 (ноль) штук.

А самое главное на практике отработал и пришел к тому же выводу. У Вас другое мнение?
Мнение по поводу чего?

1. Что существует доказательство?
2. Что MH нужно было реализовать в PHP?
3. Что MH имеет практический смысл?

...тем более, что MH имеет весьма различные формы...
 

windoctor

Новичок
Подскажите тогда пожалуйста как реализовать без множественного наследования.
Идея была такая:
При обращении index.php?act=main&do=show
Выполнять $main->show();

При обращении index.php?act=news&do=show
Выполнять $news->show();
Вот есть у меня класс main он наследует свойства класса Smarty, но также ещё есть класс с методами по подсчёту времени исполнения, перекодировки текста в утф и прочей дрянью. Также есть класс по подсчёту статистики.
Вот как всё это прицепить с подобной идеей.
 

Crazy

Developer
windoctor, не вижу оснований наследовать от Smarty. Здесь отношение не "is-a", а чистое "use".
 

windoctor

Новичок
Раньше у меня была система:
index.php?act=main&do=show
подгружался файл main.php из папки modules, а в этом файле уже подключались различные объекты по-отдельности и исполнялись методы, но сегодня мне в голову пришло что это не есть гуд.
 

Crazy

Developer
Есть классический пример: машина состоит из кузова, двигателя и колес. Если мы ее моделируем в программе, то не нужно наследовать класс Машина от классов Кузов, Двигатель и Колеса. :)
 

windoctor

Новичок
Crazy, спасибо за пример.
Он внёс ясность.
Значит как раньше у меня было - это нормальный вариант?
Когда я отдельно подключал классы.
 
Сверху