[POO] Interfaces - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [POO] Interfaces (/showthread.php?tid=775) |
[POO] Interfaces - Seren - 08-02-2007 En regardant les possibilité de php5, je me suis dit que l'utilisation des interface pouvait être intéressante. Par exemple pour les différentes entités d'un jeu, personnages, vehicules, batiments, technologie etc... même si de nature très différentes il y a souvent des fonctions qui risquent de revenir souvent. Par exemple, un "displayInfo" qui pourrait retourner de façon formater dépendant de l'objet des informations. Code PHP :
C'est pas vraiment une question plutôt une reflexion. Est-ce que vous utilisez des interfaces dans vos projets ? Et si oui, est-ce qu'il y a d'autre utilisation "standard" auquel je n'ai pas pensé ? RE: [POO] Interfaces - joshua - 08-02-2007 Non, j'ai vu le sujet mais je ne l'utilise pas. L'itneret est d'eter sur qu'on a bien ensuite codé totues les fonctions dont on avait besoin, c'est donc non négligeable. Mais ca m'a pas encore pris. Peut etre que si un jour ils acceptent l'heritage multiple, j'y refléchirais RE: [POO] Interfaces - NicoMSEvent - 08-02-2007 si toutes les classe qui ont : DisplayInfo() ont des similitudes... pourquoi ne pas créer un objet parent dont toutes ces classes hériteraient... tu déclares ces informations dans la classe mère, et tu mets le code dans les classes filles... petit exemple (non testé) Code : class forme{ En même temps, ça donne du polymorphysme. Donc, tu peux créer ceci : Code : Forme $formes[3]; Je repete: je n'ai pas testé, il y a certainement des fautes... c'est juste pour la réflexion RE: [POO] Interfaces - Seren - 08-02-2007 A priori les interfaces sont là pour donner des points d'entrée communs sur des objets qui sont au contraire très différents. Un objet "personnage" n'aura pas du tout les même caractéristiques qu'un objet "technologie". Pourtant pour les deux, il y a des méthodes analogues comme par exemple la méthode "Avoir une description". ( à mettre dans une info bulle par exemple). L'intérêt des interfaces c'est justement de négliger l'aspect hiérarchique des classes. En réalite ça fait pas grand chose à part t'obliger à implémenter une méthode que de toute façon tu aurais implémenté. Mais ça "unifie". Ton exemple est intéressant pour le principe des classes mais pour revenir à mon cas, je ne vois pas comment tu pourrais mettre "personnage" et "technologie" dans la même arborescence de classe à moins de créer une super classe fourre-tout "Entité". classe = structure hierarchique et héritage. interface = structure transverse. Sinon pour Joshua, il n' y a pas de notion d'héritage pour les interfaces, (tu "hérites" uniquement du prototype de la méthode, tu vas pas loin avec ça ) mais par contre une classe peut implémenter plusieurs interfaces. Par exemple si on avait une interface "ObjetMobile" on pourrait imaginer avoir: Code PHP :
Enfin dans ce cas là on aurait sûrement plutôt Code PHP :
RE: [POO] Interfaces - gtsoul - 08-02-2007 En java, j'utilise des interfaces parce qu'elles permettent (+/-) un héritage multiple (héritage+composition, pas taper). En php, je préfère me borner à de l'héritage pur et dur. Un peu comme les classes abstraites, c'est sympa comme concept, mais je n'en ai jamais senti l'utilité. RE: [POO] Interfaces - joshua - 08-02-2007 Nico, ce dont tu parles, c'est de l'héritage multiple et ca n'existe pas encore sous mysql.... une interface c'est "un masque de ce que doivent comporter a minima les classes qui l'utilisent" C'est très utile notament pour les classes d'accès a la bdd (model MVC) car cela permet d'avoir une unicité et de s'assurer qu'on n'oublie rien. De plus, quand tu dois modifier quelque choses et que tu sais que ce sera partout pareil, ca te permet de valider que tu n'as pas oublier une occurence quelque part. alexandre RE: [POO] Interfaces - pascal - 08-02-2007 le prochain qui parle d'héritage multiple, je lui tire les oreilles! la composition est bien souvent préférable et + souple que l'héritage ( cf "design patterns tête la première" ) l'interet des interfaces est de définir des modèles auxquels doivent se conformer les classes. ça aide à structurer la code. A+ Pascal RE: [POO] Interfaces - PJ - 08-02-2007 Les interfaces.. Connaît pas. Quelqu'un sait où trouver un tuto à ce sujet ? Merci RE: [POO] Interfaces - Seren - 08-02-2007 PJ a écrit :Les interfaces.. Connaît pas. Quelqu'un sait où trouver un tuto à ce sujet ? En anglais j'ai lu ça, c'est dense mais compréhensible. http://www.zend.com/php5/articles/php5-interfaces.php RE: [POO] Interfaces - NicoMSEvent - 09-02-2007 joshua a écrit :Nico, ce dont tu parles, c'est de l'héritage multiple et ca n'existe pas encore sous mysql.... je croyais qu'on parlait de PHP... ^^ Il n'est pas multiple -> chaque classe n'hérite que d'une seule classe... Je n'ai pas parlé d'un carré qui descendrait qu'un rectangle et d'un losange en meme temps... |