“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 290 — #300
i
i
i
i
i
i
i
i
290
6
• La programmation orientée objet
La plupart des langages orientés objet populaires (comme Smalltalk, C++ et Java)
ne soutiennent que des atomes comme étiquettes des méthodes, pas des noms. Pour
restreindre la visibilité des atomes, ces langages utilisent des déclarations (comme
private et protected). C’est une approche syntaxique : pour comprendre ces déclarations il faut connaître leur sémantique. Par contre, l’utilisation des noms est une
approche sémantique : on peut les comprendre tout de suite parce qu’ils font partie du
langage noyau. L’utilisation des noms est pratique parce que les visibilités que l’on
peut obtenir ne sont pas limitées aux déclarations imaginées par les concepteurs du
langage. Le programmeur peut définir d’autres visibilités. Mais pour l’instant, l’approche capacité exemplifiée par les noms n’est pas encore populaire dans les langages
courants.
Regardons de plus près les compromis entre les noms et les atomes. Les atomes
sont identifiés par leurs représentations imprimées. Ils peuvent donc être stockés dans
les fichiers texte, dans les courriels, dans les pages Web, etc. En particulier, ils peuvent
être stockés dans la tête du programmeur ! Quand on écrit un grand programme,
une méthode peut être appelée de partout simplement en donnant sa représentation
imprimée. Par contre, la dissémination des noms est très différente : le programme luimême doit passer le nom au code qui appelle la méthode. Cela ajoute de la complexité
au programme et c’est un fardeau pour le programmeur. Les atomes l’emportent
alors quant à la simplicité du programme et au confort psychologique pendant le
développement.
Par contre, avec les noms il n’y a pas de conflits à propos de l’héritage (simple ou
multiple). Ils ont peu de problèmes de sécurité : il est impossible d’utiliser un nom
sans l’autorisation du programme. Quelqu’un qui a une référence à un objet n’a pas
forcément le droit d’appeler toutes les méthodes de l’objet. Le programme sera donc
moins enclin aux erreurs et mieux structuré. Un dernier point est que l’on peut donner
un soutien syntaxique pour simplifier l’utilisation des noms. Par exemple, dans le
système à objets de ce chapitre, il suffit que l’étiquette de la méthode commence avec
une majuscule.
6.4 LA PROGRAMMATION AVEC L’HÉRITAGE
Toutes les techniques de programmation des chapitres précédents sont toujours
valables dans le système à objets. Les techniques particulièrement utiles sont basées
sur l’encapsulation et l’état pour modulariser les programmes.
Cette section se concentre sur les nouvelles techniques qui deviennent possibles par
la POO. Ces techniques sont basées sur l’utilisation de l’héritage : d’abord l’utiliser
correctement et ensuite exploiter sa puissance.
Précédent

- 305/370

Suivant