Éditer sur GitHub

Les spécificités des langages

Typage fort ou typage faible

Quelque soit le langage de programmation utilisé, une variable aura toujours un type. Ceci permettra par exemple d'avoir comme résultat :

Nous aurons toutefois deux cas de figure en fonction des langages :

Dans la deuxième catégorie à laquelle appartiennent les langages tels JavaScript, TypeScript, PHP, Python,..., nous soulignerons que :

Impact : Nous serons à adapter la présentation de certains patrons de conception pour rendre unique les noms des fonctions et méthodes. En outre, certains patrons de conception seront plus utiles avec des langages fortement typés qu'avec des langages tels Python, JavaScript, TypeScript,...

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++, en Java ou en JavaScript 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 (voire pas dans la culture) de définir des méthodes get / set dans certains langages.

Impact : En Java, JUnit et Spring s'appuieront sur ces mécanismes 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 :