=> 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
26 avril 2003 à 18:27
26 avril 2003 à 16:59
Encore merci !
Bestiol.
26 avril 2003 à 11:30
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.
26 avril 2003 à 11:06
Est-ce qu'on peut s'attendre à une évolution du Pascal Objet pour permettre l'utilisation directe de l'héritage multiple ???
26 avril 2003 à 10:02
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.
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.