Для чего в PHP наследование?

tony2001

TeaM PHPClub
>"всё" и нужное и не очень
новое слово в ООП ?
я всегда считал, что класс-родитель имеет только базовые методы и атрибуты, а уж потомки расширяются неограниченно.
я ошибался?
 

Screjet

Новичок
2Crazy

кажись мы потихоньку переходим на "стили" :)
т.е. один человек пишет так, другой - иначе..

вот пример:
базовый класс содержит малюсенький метод линкования (сорри за мат):
PHP:
class base {

function linkGlobal($name){
  $this->{$name} = &$GLOBAL[$name];
  }

}
применяется, чтоб не копировать "тяжелые" массивы (объекты) а использовать ссылки..
Так в некоторых "наследниках" нужна копия такой переменной, а не ссылка, потому этот метод останется невостребованным..
 

Screjet

Новичок
Crazy,

только не смейся :)
"это уже не будет ООП"
типа условная инкапсуляция (в чистом виде обещают в ZendEngine2)
 

Crazy

Developer
Автор оригинала: Screjet
только не смейся :)
"это уже не будет ООП"
Это не смешно, это печально. Не нужно тащить за уши в объект то, что к нему отношения не имеет.
 

_RVK_

Новичок
Автор оригинала: Crazy
Нельзя ли подробнее на эту тему? :)
А я это сказал не то что бы серьёзно. Давайте напишем один суперкласс в котором реализуем методы авторизации, доступа к БД, сесии, выключения питания сервера и тетрис на всякий случай :) Правда же меньше кода получится нежели если написать класс а потом в одном потомке реализовать метод доступа к БД а в другом тетрис. Я не говорю что так нужно делать, но формально кода получится больше.
 

Crazy

Developer
Автор оригинала: Diesel
Давайте напишем один суперкласс в котором реализуем методы авторизации, доступа к БД, сесии, выключения питания сервера и тетрис на всякий случай :)
Давайте просто напишем для всего этого обычные функции. Зачем здесь "суперкласс"?
 

_RVK_

Новичок
Автор оригинала: Crazy
Давайте просто напишем для всего этого обычные функции. Зачем здесь "суперкласс"?
Про функции будет в топике "Зачем а PHP функции" :)
 

Screjet

Новичок
Автор оригинала: Crazy
Давайте просто напишем для всего этого обычные функции. Зачем здесь "суперкласс"?
Это уже проходили, так неинтересно :)

2Diezel - интересная идея в базовый класс вмонтировать тетрис
:) :) :)
 

tony2001

TeaM PHPClub
>Правда же меньше кода получится нежели если написать класс а
> потом в одном потомке реализовать метод доступа к БД а в
> другом тетрис. Я не говорю что так нужно делать, но формально
> кода получится больше.
ооо...
сэр или шутит, или не понимает основ...
 

Crazy

Developer
tony2001, это просто новый подход к ООП. Концепция такова:

1. Создаем класс, который может ВСЕ сразу.
2. Создаем потомков этого класса, которые могут то же самое.
3. Пытаемся понять, зачем нам потомки.
4. Понимаем, что потомки нам не нужны и убираем их.
5. Понимаем, что базовый класс тоже не нужен, поскольку без него все быстрее работает.
6. Убираем базовый класс и получаем набор отдельных функций.
7. Живем счастливо, рассказывая всем, что пользуемся ООП.

Концепция небезинтересна....
 

Screjet

Новичок
Crazy, немного не так :)

1. Создаем объект класса, который агрегирует несколько нужных классов.
2. Агрегируем новый класс куда нибудь.
N. Обнаруживаем, что текущий класс где-то уже БЫЛ агрегирован..

Да ну и бог с ним :) :)
"лишний код - не брак"
//шутю
 
Сверху