как грамотно спроектировать вызов статичных методов наследуемого класса

Лысый

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

Crazy

Developer
(Задумчиво)

1. Хотим вызвать метод, не зная имени класса. Т.е. не вот так: "Foo::bar()". Нет у нас Foo.
2. Поскольку мы непременно хотим статический -- значит, у нас нет экземпляра объекта. Т.е. не вот так: "$foo->bar()". Нет у нас $foo.

IMHO, эта феерическая картина не может породить ничего кроме обычной функции. :)
 

StUV

Rotaredom
Crazy
+
навевает мысли о каком-то неправильном стремлении "к наследованию namesapace'ов с перегрузкой"
=)
 

texrdcom

Новичок
Лысый

Давай проще напиши премер кода
как ты хочешь и что выззывать
ну для примера есть класс А его наследует класс б
и вот нужно сделать вот так
так будет проще и тебе и отвечющим и возможно твой пример снимит все вопросыы.
p/s
ФАНАТ тереяет хватку топик не в той ветке или корупция... :)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Я вот никак не могу понять, а нафига нужно новый метод, не связанный с объектом, писать в потомке?
Если имя класса неизвестно, да еще и объекта нет, то смысл в расширении класса отсутствует.
Следовательно, ответом на вопрос "как грамотно спроектировать" является слово "RTFM".
 

Лысый

Новичок
всегда удивлялся когда начинаются рассуждения типа зачем и тд или появляются умные советы типа "RTFM".

смысл в расширении класса всегда может быть, если речь идёт об использовнии чьей-либо библиотеки. отсюда же и незнание имени класса-потомка.
странно если было бы иначе.

пример приводить сложно - слишком много объяснять

вобщем я просто переделал модель, сделал метод обычным, а не статичным и вызываю его используя фабрику объектов.

всё.
 

Crazy

Developer
Автор оригинала: Лысый
всегда удивлялся когда начинаются рассуждения типа зачем и тд
...однакож:

вобщем я просто переделал модель, сделал метод обычным, а не статичным и вызываю его используя фабрику объектов.
...что показало уместность вопросов "зачем". Ответ оказался простым: "незачем". Ибо ЭТОГО хотеть действительно было не нужно. И альтернативное решение оказалось простым и разумным.
 

Лысый

Новичок
;)
ну можно и так сказать
но я склонен думать иначе:
ответ был НЕЛЬЗЯ НИКАК
поэтому переделал

на счёт нужно не нужно - я столнулся с данностью - наследование такого класса
выбора нет


а на счёт непременимости статик методов в потомках - спорный вопрос
если класс юзается отдельно это ничему не мешает
а таких примеров много
 

Crazy

Developer
Не помню, чтобы кто-то говорил о неприменимости статик-методов в потомках. Говорили о другом.
 

Лысый

Новичок
Re: Re: как грамотно спроектировать вызов статичных методов наследуемого класса

Автор оригинала: Crazy
Если человек оверрайдит статические методы, то это первый признак того, что ему нужно сделать паузу, отдохнуть и задуматься о смысле жизни.

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

P.S. До сих пор я думал, что единственный язык, где действительно работает override для методов класса -- Object Pascal. Но и там, я уверен, если не вылечили, то скоро вылечат.
ты сам и писал
 

Crazy

Developer
Лысый, у тебя русский язык -- родной?

Где ты здесь видишь слова о том, что в потомках нельзя использовать статические методы?
 

Лысый

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

думаю тему можно считать закрытой
 

Crazy

Developer
Автор оригинала: Лысый
ну давай не будем уподобляться Фанату и придераться к словам
я думаю из хода разговора понятно, что я имел в виду невозможность в коде вызывать переопределённый статический метод
Друг мой, ты вроде как не на общественно-политическом форуме, правда? Так что впредь старайся находить в себе силы писать именно то, что имеешь в виду, а не "вы там догадайтесь".
 

john.brown

просто кулибин
Лысый

Так все же интересно, у тебя была реальная необходимост именно переопределять стат. метод? Т.е. в каких то случаях юзается родительский, а в каких то - потомка? Любопытно б кода кусочек увидеть :)
 

ONK

Пассивист PHPСluba
Кто-то целился в юмор, но промахнулся разделом?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
респект Crazy за терпимость и желание нести мудрость в массы применительно к конкретным глупостям :)

-~{}~ 29.08.06 23:55:

Лысый
Если 5 человек независимо друг от друга говорят, что я пьян, то я понимаю, что мне все-таки стоит пойти проспаться :)
 

Sanchez

Новичок
В нормальных ООП-языках эта проблема решается использованием паттерна синглтон, но будет ли он работать в пхп (4-м), я не знаю, скорее всего нет, т.к. отсутствует типизация данных.
 
Сверху