Éditer sur GitHub

Les spécificités des langages

La gestion de la mémoire

Les choix de conception se feront en fonction des mécanismes de gestion de la mémoire du langage utilisé :

En fonction des cas, nous serons plus ou moins contraint sur les relations entre les objets.

Impact : Concevoir un moteur de jeu vidéo en UML sans se demander s'il sera implémenté en C++ ou en Java n'a pas de sens. Les contraintes ne sont pas les mêmes.

La présence de concepts complémentaires

Certains langages offriront des concepts complémentaires aux concepts de base la P.O.O. :

Impact : Il n'est pas obligatoire (ou pas dans les moeurs) de définir des méthodes get / set dans certains langages.

Impact : JUnit et Spring s'appuieront sur ces mécanismes en Java quand nous trouverons des mécanismes de génération de code pour avoir les équivalents dans d'autres langages (ex : macro en C++ et Rust, Qt Meta-Object Compiler,...)

La présence d'autres paradigmes

Dans de nombreux langages, nous noterons que la P.O.O. cohabitera avec d'autres paradigmes :

Nous soulignerons que nous pourrons :

(*) Spoiler : nous verrons en TP que cette approche permet d'avoir un visiteur renvoyant un résultat.