PHP OOP - Интерфейси

kopura

Registered
Добър вечер туристи,

От доста време пиша на ООП и така и не можах да разбера за какво служат интерфейсите и какво се случва ако един клас имплементне дадения интерфейс. Опитах се да разбера от написаното в php.net , но не успях. Ако на някой му се занимава, бих помолил да обясни с няколко думи тяхното предназначение.

Благодаря предварително!
Поздрави :)
 
http://www.developer.com/lang/php/article.php/3604111/PHP-5-OOP-Interfaces-Abstract-Classes-and-the-Adapter-Pattern.htm


Най-добра представа мисля, че ще добиеш от този линк.


На кратко :Интерфейса е клас в който се декларират методите който задължително трябва да ги има в класа в който се вкарват.

При унаследяването "детето" приема автоматично всички методи който има "родителя".
А тук се задължава това което е декларирано в интерфейса да го има и в "детето".
Применро създаваш някакъв мултимедиен плеар.няма значение езика.
Обаче го оставят отворен , така че всеки може да напише плъгин който да работи. Обаче какво ще го спре това да прави каквото си иска да ?(Не че това ще го спре де ... ) Но по този начин можеш да му кажеш : " Искам плъгините който пишеш да имат този и този метод, с тази и тази информация. Не искам да има метод който приема грешен тип данни " примерно.
 
index каза:
http://www.developer.com/lang/php/article.php/3604111/PHP-5-OOP-Interfaces-Abstract-Classes-and-the-Adapter-Pattern.htm


Най-добра представа мисля, че ще добиеш от този линк.


На кратко :Интерфейса е клас в който се декларират методите който задължително трябва да ги има в класа в който се вкарват.

При унаследяването "детето" приема автоматично всички методи който има "родителя".
А тук се задължава това което е декларирано в интерфейса да го има и в "детето".
Применро създаваш някакъв мултимедиен плеар.няма значение езика.
Обаче го оставят отворен , така че всеки може да напише плъгин който да работи. Обаче какво ще го спре това да прави каквото си иска да ?(Не че това ще го спре де ... ) Но по този начин можеш да му кажеш : " Искам плъгините който пишеш да имат този и този метод, с тази и тази информация. Не искам да има метод който приема грешен тип данни " примерно.

Тъкмо тръгнах да пиша същият пример :D
 
Понеже аз най-обичам да работим с примери, ако ти се разглежда: https://github.com/phpbb/phpbb3/tree/develop/phpBB/includes/cache/driver

Ако го разбереш ще го схванеш супер принципа на интерфейса. :)
Особено ако тръгнеш да пишеш такъв клас.
 

Back
Горе