Практическое применение интерфейсов.

solaris

Новичок
Практическое применение интерфейсов.

Добрый День!
Народ, пождскахите пожалуйста мне прктическое применение интерфейсов в php5. Много читал, правда,... но так и не понял где их применить на практике:((

Подскажите плиз пример, где их удобно заюзать.
 

zerkms

TDD infected
Команда форума
читать надо не про "прктическое применение интерфейсов в php5", а про интерфейсы и ООП вообще
 

whirlwind

TDD infected, paranoid
Моки из них вкусные получаются :)

PHP:
	function testSetGetStore(){
		$store = $this->getMock('Util_IRecordStore');
		$m = new Util_Migration();
		$m->setStore($store);
		$this->assertSame($store,$m->getStore());	
	}
 

zerkms

TDD infected
Команда форума
whirlwind
ты считаешь, что тредстартеру от твоего ответа стало легче? :)
 

HraKK

Мудак
Команда форума
ВНИМАНИЕ! Практическое применение интерфейсов!!!!
PHP:
class meniamognoforichetb implements IteratorAggregate
{
      protected $tutxranydannie = array(1,2,3,4,5);
      function getIterator()
      {
                return new ArrayIterator( $this->tutxranydannie ); 
      }
}
$dgfh__dsf = new meniamognoforichetb();
foreach( $dgfh__dsf as $gfhjgkasf__DFDS__cALL )
echo $gfhjgkasf__DFDS__cALL;
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
solaris
исключительно для личного удобства программистов
когда код большой и много классов, которые делают почти одно и то же, хочется создать унифицированную структуру этих классов

один программист может написать класс, который реализует известный другим интерфейс, и другие не будут думать, как тот класс использовать

я сам для себя привел все классы для работы с разными базами данных к единому виду (одни методы) и написал, что все они реализуют один интерфейс
теперь я не вспоминаю, как работать с каким классом

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

solaris

Новичок
grigori
спасибо:) терь понятно:))

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

просто хотелось узнать, может их можно использовать еще как-то, более разумно:)
Теперь все ясно. спасибо.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
можно, это самый наглядный пример :)

когда пишешь код, в котором используюся колбеки(хендлеры) - интерфейс позволяет создать стандарт для колбеков
колбеки часто нужны в сетевых приложениях - курл, сокеты, etc

еще я привел к интерфейсу все классы исключений
 
Сверху