Помогите разобраться с ООП

Dima_u

Guest
Помогите разобраться с ООП

Простой вопрос. Какие выгоды мы получаем при использовании интерфейсов в php???
( конечно от расширения классов выгода видна, но нигде не найду инфу по поводу интерфейсов)
Подскажите, может у кого есть наглядный пример их использования???
(Заранее извиняюсь за этот глупый вопрос)
 

Dima_u

Guest
Это я знаю:( на яве был опыт программирования, но там был толк):
"Object interfaces allow you to create code which specifies which methods a class must implement, without having to define how these methods are handled." -
Интерфейсы позволяют писать код, который определяет какие методы должны определяться в классе( реализующем данный интерфейс), без определения внутренней структуры самих методов.

То есть если мы реализовали интерфейс в классе, мы просто должны все (грубо говоря) функции и переменные этого интерфейса определить в классе. Если не определим, то выдаст ошибку. То ест через интерфейс мы следим, реализовал ли класс все функции...зачем???
 

Dima_u

Guest
маленький :(

-~{}~ 04.02.05 00:16:

Но в яве через интерфейсы мы можем пользоваться свойствами объектов.
 

neko

tеam neko
в общем-то в пхп интерфейсы
довольно таки бесполезная штука
 

Dima_u

Guest
Вот этого то я от вас и добивался, господа.
( хотя в яве это позволяет доступ к объектам, тем самым делая интерфейсы действительно полезной вещью )
 

tony2001

TeaM PHPClub
>"Object interfaces allow you to create code which specifies which methods a class must
>implement, without having to define how these methods are handled."
в PHP точно так же.

>Вот этого то я от вас и добивался, господа.
neko - не последняя инстанция.

>хотя в яве это позволяет доступ к объектам, тем самым делая интерфейсы
>действительно полезной вещью
"позволяет доступ к объектам" ? как это звучит в русском переводе?
чем интерфейсы в PHP тебе неясны, если ты (по твоим словам) понял зачем они в Java ?
 

neko

tеam neko
я незнаю зачем это в яве, т.к. вообще незнаю яву

впервые они появились для того чтобы гарантировать для методов класса, реализующего интерфейс, заранее определенную позицию в vtable
в php ясное дело, таких понятий вообще нет

-~{}~ 04.02.05 00:30:

я так понимаю, что в php это просто функция для защиты программистов от самих себя
или как это правильно сказать
для контроля какого-то
 

Dima_u

Guest
Отвечаю tony2001 :)
К примеру через интерфейс runnable мы в яве можем реализовать многопоточность, (второй способ расширить класс).
Я , к сожалению не знаю, ка это реализовано, но работает.

А в php я не нашел ничего похожего.
То есть если мы реализуем интерфейс и напишем пару функций, это не будет отличаться ни чем от того, если мы напишем эту же пару функций и без реаизации интерфейса. ( я может ошибаюсь, ну не пойму в чем мы выигрываем )
Поясните мне пожулйста. :)
 

tony2001

TeaM PHPClub
>не пойму в чем мы выигрываем
"Object interfaces allow you to create code which specifies which methods a class must implement, without having to define how these methods are handled."

что не ясно в этой цитате?
 

Dima_u

Guest
Все ясно, но как мы можем это праааактически применить???
 

Panchous

Павел
Автор оригинала: Dima_u
К примеру через интерфейс runnable мы в яве можем реализовать многопоточность, (второй способ расширить класс).
Я , к сожалению не знаю, ка это реализовано, но работает.
:D :D :D
тогда зачем задаваться подобными вопросами?
 

neko

tеam neko
Все ясно, но как мы можем это праааактически применить???
практика заключается в том, что если ты определил интерфейс
каждый кто захочет его реализовать должен либо сделать это в полном объеме, либо класс будет абстрактным

вопрос в том, что непонятно зачем это нужно :Р
мне лично тоже непонятно
напоминает всякие изощерния из серии const/mutable
 

tony2001

TeaM PHPClub
Dima_u
>Все ясно, но как мы можем это праааактически применить???
практически - писать код, который будет принуждать тебя или других реализовывать определенный список методов так, как указано в интерфейсе.

кратко: не надо - не трогай.
вопрос "зачем нужны синхрофазотроны?" тебя не беспокоит?
вот и по поводу интерфейсов не беспокойся.
 

Dima_u

Guest
Автор оригинала: Panchous
:D :D :D
тогда зачем задаваться подобными вопросами?
Нет, мне не понятно как ява обрабатывает данную инструкцию, а вопрос был про интерфейсы в php...
вообщем я ушел от темы немного.



Спасибо за общение.
Неплохо поговорили.

-~{}~ 04.02.05 00:57:

Я просто думал, может от них в php есть реальная польза. Спасибо что лишний раз объяснили :)
 

tony2001

TeaM PHPClub
>может от них в php есть реальная польза.
если бы не было реальной пользы - их бы вообще не было.
бесполезные вещи редко просто так добавляются в язык.
 

Dima_u

Guest
Автор оригинала: tony2001
вопрос "зачем нужны синхрофазотроны?" тебя не беспокоит?
вот и по поводу интерфейсов не беспокойся.
Правильно.
 

neko

tеam neko
кстати, я так понимаю, что runnable несколько выходит за пределы java как языка

точно так же как в php, например какой-нибудь arrayaccess сам функционирует не за счет пхп
а за счет vm, на которой пхп крутится

а юзерленд получает эти не слишком нужные ему возможности по наследству
 
Сверху