20-07-2009, 11:50 AM
Une interface, c'est effectivement un contrat (bien que la "programmation par contrat" ca soit encore autre chose).
Si une classe implémente une interface, elle doit alors implémenter toutes les méthodes de cette interface.
Alors, oui, un contrat c'est contraignant (aspect "force le developpeur"), mais c'est aussi une sécurité, et ca permet une "unicité de traitement" (plus l'aspect multi heritage). On peut me passer un objet de n'importe quel type, du moment qu'il implémente l'interface dont j'ai besoin.
Pour moi, c'est un point essentiel de la POO (avant d'avoir bien compris ce que c'était (avec du coup tout les concepts afférents et usages possibles (style design pattern), je ne pense pas que je faisais de la POO, juste des structures avec des fonctions (enfin, y avait l'heritage, quand même) ).
Aprés, dans un jeu web en php, je sais pas.
Si une classe implémente une interface, elle doit alors implémenter toutes les méthodes de cette interface.
Alors, oui, un contrat c'est contraignant (aspect "force le developpeur"), mais c'est aussi une sécurité, et ca permet une "unicité de traitement" (plus l'aspect multi heritage). On peut me passer un objet de n'importe quel type, du moment qu'il implémente l'interface dont j'ai besoin.
Pour moi, c'est un point essentiel de la POO (avant d'avoir bien compris ce que c'était (avec du coup tout les concepts afférents et usages possibles (style design pattern), je ne pense pas que je faisais de la POO, juste des structures avec des fonctions (enfin, y avait l'heritage, quand même) ).
Aprés, dans un jeu web en php, je sais pas.