Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

php наследование

271
30 апреля 2008 года
MrXaK
721 / / 31.12.2002
есть у меня допустим 2 класса class1 и class2 и ещё один класс classU
надо сделать, чтобы можно было обращаться так:
 
Код:
$classU = new classU('class1');
$classU->someMethod();

someMethod есть в обоих классах (class1 и class2), но какой из классов должен наследовать classU должно определятся конструктором..
15
30 апреля 2008 года
shaelf
2.7K / / 04.05.2005
Про наследование в РНР на оффсайте почитать никак?
271
30 апреля 2008 года
MrXaK
721 / / 31.12.2002
дык я прочитал.. у меня единственная идея реализации - сделать класс наследником от обоих и класс-загрузчик, который будет подгружать файл с одним из описанных классов и пустым описанием другого)
15
30 апреля 2008 года
shaelf
2.7K / / 04.05.2005
Опиши задачу полностью (не что ты написал, а задачу, которую ты решаешь таким образом)
276
30 апреля 2008 года
Rebbit
1.1K / / 01.08.2005
Кажется у меня была похожая проблема.
Как я понял class1 и class2 имеют общий интерфейс а classU должен вести себя то как 1 то как 2. Я решал эту проблему агрегацыей. Выделял общий интерфейс interfaceU, реализировал его в class1 и class2.
classU в таком случае будет оберткой и будет инкапсулировать в себе екземпляр интерфейса interfaceU и с помощю перегруженного __call и рефлексии будет дергать нужный метод из агрегата. Ну а дальше дело фантазии.
только при таком подходе в конструктор передается не название класса, а его екземпляр.
271
30 апреля 2008 года
MrXaK
721 / / 31.12.2002
Rebbit правильно описал... с экземпляром идея понятна.. если есть в себе нужный метод, то вызываем, иначе вызываем метод из переданного класса... а хотелось бы не создавать лишних экземпляров... хотя если по другому никак то тоже можно..
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог