Introduction au polymorphisme

Soyez le premier à donner votre avis sur cette source.

Vue 9 721 fois - Téléchargée 661 fois

Description

=> Un petit exemple pour montrer le fonctionnement du polymorphisme.
Voir également les commentaires sur la source dans le Zip

Le polymorphisme est une technique compliquée qui permet de simplifier le travail du développeur (!!)

Conclusion :


Les commentaires sont les bienvenus

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_bgK Messages postés 131 Date d'inscription vendredi 7 juin 2002 Statut Membre Dernière intervention 19 janvier 2004
26 avril 2003 à 18:27
Delphiprog : Merçi de ta réponse. Le logiciel dont tu parles est très intéressant, j'aime bien la fonction générer documentation. Pour les Design Patterns, j'ai regardé un peu.
cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
26 avril 2003 à 16:59
Merci à toi de m'avoir répondu !! Connaissant un peu l'étendue du sujet, mais sans connaitre pour autant le rôle exact des interfaces, je me doutait bien que tu ne répondrais pas en trois mots, mais ton explication me va quand même !!

Encore merci !
Bestiol.
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
26 avril 2003 à 11:30
"Est-ce qu'on peut s'attendre à une évolution du Pascal Objet pour permettre l'utilisation directe de l'héritage multiple ???"
Je ne le pense pas car celà remettrait en cause tout la VCL. Celà dit, il n'y pas que l'utilisation des interfaces COM qui permette d'implémenter le mécanisme de l'héritage multiple.
Si le sujet t'intéresse, je t'invite à étudier les Design Patterns et à voir comment, selon le modèle de conception choisi, on peut aller plus loin que le simple héritage multiple. Henri CESBRON-LAVAU aborde le sujet de manière discrète sur le site Developpez.com à l'aide de schémas UML pour faciliter la compréhension..
Bien sûr, il faudra pousser l'étude plus avant avant de se plonger dans la VCL et voir comment Borland a utilisé les design patterns pour nous offrir des composants héritant de plusieurs autres classes.
Le pascal objet offre tant de possibilités que nous ne les remarquons même pas.
En tous cas, merci à BGK et à Bestiol d'avoir ouvert un débat aussi passionnant.
Pour ceux qui voudrait qui voudrait mieux visualiser la différence entre "hérite de" et "utilise" aus sens UML de ces deux expressions, je leur propose de télécharger un utilitaire nommé EssModel (en open source), qui analysera vos sources Pascal et vous en fera une représentation visuelle (à une vitesse fulgurante). Ce bijou est disponible à l'adresse http://www.essmodel.com.
"ESS-MODEL: The fastest and easiest to use UML reversing tool on the market!"
Très utile pour ceux qui ne disposent pas de logiciels comme ModelMaker, par exemple ou autres monstres comme Rational Rose.
cs_bgK Messages postés 131 Date d'inscription vendredi 7 juin 2002 Statut Membre Dernière intervention 19 janvier 2004
26 avril 2003 à 11:06
Donc, les interfaces sont juste une méthode pour mettre en place un héritage multiple. Et permettent également d'implémenter des objets COM ???

Est-ce qu'on peut s'attendre à une évolution du Pascal Objet pour permettre l'utilisation directe de l'héritage multiple ???
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
26 avril 2003 à 10:02
Les interfaces définissent les procédures ou fonctions que devront implémenter, sous forme de méthodes, les classes les utilisant. Une interface est comparables à la définition d'une classe dont toutes les méthodes seraient abstraites. Mais la comparaison s'arrêtera là.
Delphi ne dispose pas du mécanisme de l'héritage multiple comme en C++.
Les interfaces sont une façon de contourner cette lacune de manière élégante, sauf que COM n'est pas disponible avec Kylix et que leur utilisation se limitera donc à l'environnement Windows.
Le polymorphisme et l'héritage sont basés sur la compatibilité des interfaces (comprenez de la partie interface d'une classe).
Les interfaces COM sont basées sur l'implémentation, par les classes ayant passé un "contrat", des fonctions ou procédures définies dans l'interface.
Ainsi, une classe peut passer un "contrat" indiquant qu'elle implémente plusieurs interfaces. C'est ce qui nous fait penser à une comparaison avec le concept d'héritage multiple.
Plutôt que de faire un long discours, il y a un petit tutorial sympa sur le site phidels.com (http://www.phidels.com/php/index.php3?page=../php/interfaces/interfaces.htm&id=180) qui illustre parfaitement ce principe.

Pour en savoir davantage, voir aussi le site www.techvanguards.com ou le livre de l'excellent Eric HARMON : "Delphi COM programming". Ces deux références sont toutes deux en anglais, sorry...

Désolé Bestiol, en trois mots ce n'était pas possible.
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.