Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 25/08/2008, 00h21   #1
Membre du Club
 
Date d'inscription: août 2006
Localisation: Région parisienne, france
Messages: 95
Par défaut [POO] A quoi servent les interfaces en php ?

Bonsoir

Je comprend pas l'utilité de l'interface.

A ce que je comprend une interface est une sorte de liste de methode abstraite, que de toute facon il audra redefinir dans les classes.

Donc a part peut etre au niveau conceptualisation je vois pas l'interet de la chose.

Mais j'ai sans doute mal compris , quelqu'un pourrait il m'eclairer ? ( avec un exemple si possible?).


Edit :
Voir Ici pour la reponse : http://www.developpez.net/forums/d47...es-interfaces/

Dernière modification par eilijah ; 25/08/2008 à 01h04.
eilijah est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 03h47   #2
Membre éprouvé
 
Avatar de mon_nom_est_personne
 
Date d'inscription: mai 2008
Localisation: Tokyo
Messages: 404
Par défaut

tu as raison sur le fait que les interfaces fonctionnellement parlant font rien. Mais elles ont leur importances d'un point de vu conceptuel mais aussi d'un point de vue structurel.

prenons un exemple simple mais efficace : les musiciens

Chez les musiciens tu as de tout: des batteurs, des guitaristes, des violonnistes etc... Cependant leur seul point commun c'est de faire du son avec un instrument de musique, tout le reste est different (la facon de jouer, l'instrument lui-meme etc...)

Mais voila tu est chef d'orchestre et tu veux composer dynamiquement le tiens. Tu sais que les ordres que tu vas donner sont les memes pour tous :
- Dis-moi le nom de ton instruement
- Joue de la musique

Dans ce cas de figure tu vas donc utilise le factory patern pour appeller tes musiciens.

classe usineAOrchestre

Code :
 
class usineAOrchestre
{
private $nombreDeMusicien = 0;
 
public function appelleUnMusicien(string $nomDuMusicien)
{
  $this->$nombreDeMusicien++;
  $this->musicien.$nombreDeMusicien = new $nomDuMusicien;
}
public function nombreDeMembre()
{
  return this->nombreDeMusicien;
}
}
 
 
listes de action que doivent savoir faire les musiciens
Code :
 
interface abilitesDesMusiciens
{
public function nomInstrument();
public function joueUnChanson($nomDeLaChanson);
}
 
exemple d'implementation de musicien

Code :
 
class batteur implement abilitesDesMusiciens
{
public function nomInstrument(){ echo 'batterie'; }
public function joueUnChanson($nomDeLaChanson){ echo 'tambourine sur '.$nomDeLaChanson;}
 
}
 
 
class guitariste implement abilitesDesMusiciens
{
public function nomInstrument(){ echo "guitare"; }
public function joueUnChanson($nomDeLaChanson){ echo "gratouille ".$nomDeLaChanson;}
 
}
 
tu peux maintenant diriger ton orchestre
Code :
 
<?php
$orchestre = new usineAOrchestre();
$orchestre->appelleUnMusicien('batteur');
$orchestre->appelleUnMusicien('guitariste');
$nb = $orchestre->nombreDeMembre();
for($i = 1; $i <= $nb; $i++)
{
echo $orchestre->musicien.$i->nomInstrument();
echo  $orchestre->musicien.$i->joueUnChanson('paint it black');
}
 
// mais tu peus aussi faire
 
echo $orchestre->musicien1->nomInstrument();
echo $orchestre->musicien2->joueUnChanson('paint it black');
echo $orchestre->musicien1->joueUnChanson('hightway to hell');
 
?>
 
grace a ton interface tu es sur que quelque soit la classe que tu instancie tu auras un comportement homogene. Dans cette exemple, si par le suite tu veux garder le meme code mais changer de musicien tu n'auras que tes appelles a changer et ton code marchera tout de meme.

Dernière modification par mon_nom_est_personne ; 09/09/2008 à 02h56.
mon_nom_est_personne est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 10h50   #3
Membre habitué
 
Date d'inscription: octobre 2006
Localisation: lille
Âge: 33
Messages: 164
Par défaut

mon_nom_est_personne excellente explication
malkie est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 11h00   #4
Membre éprouvé
 
Avatar de mon_nom_est_personne
 
Date d'inscription: mai 2008
Localisation: Tokyo
Messages: 404
Par défaut

merci beaucoup, je retransmet juste ce que l'on m'a appris.
mon_nom_est_personne est déconnecté   Envoyer un message privé Réponse avec citation
NEWS PHPFAQ PHPCours PHPSources PHPLivres PHPScripts PHPOutils PHPComparatifsZend Framework

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 05h18.


Vos questions techniques : forum d'entraide PHP - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.