“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 270 — #280
i
i
i
i
i
i
i
i
270
6
• La programmation orientée objet
Les principes de la programmation orientée objet
Le modèle de calcul de la POO est le modèle avec état du chapitre 5. Le premier principe de la POO est que les programmes sont des collections d’abstractions de données
qui interagissent. Dans la section 5.4 nous avons vu une diversité plutôt déconcertante
des manières de construire des abstractions de données. La programmation orientée
objet met de l’ordre dans cette diversité. Elle postule deux principes :
1. Les abstractions de données doivent avoir de l’état explicite par défaut. L’état
est important à cause de la modularité du programme (voir section 5.2). Il rend
possible le développement de programmes en tant que parties indépendantes
qui peuvent être étendues sans changer leurs interfaces. Le principe opposé
(déclaratif par défaut) est raisonnable aussi, parce qu’il facilite le test et le
raisonnement et il est plus naturel pour la programmation répartie. Pour nous, les
abstractions avec et sans état doivent être toutes les deux aussi faciles à utiliser.
2. Le style objet (PDA) de l’abstraction de données doit être le défaut. Le style
objet est important parce qu’il encourage le polymorphisme et l’héritage. Le
polymorphisme a été expliqué dans la section 5.4. Il permet à un programme de
répartir correctement les responsabilités entre ses composants. L’héritage est un
nouveau concept que nous introduisons. Il permet la construction incrémentale
des abstractions. Nous ajoutons une abstraction linguistique, qui s’appelle une
classe, afin de soutenir l’héritage dans le langage.
Pour résumer, nous pouvons caractériser librement la programmation orientée objet
comme la programmation avec les abstractions de données dans le style objet, avec
l’état explicite, le polymorphisme et l’héritage.
La structure du chapitre
– La section 6.1 explique le concept de l’héritage. Nous y introduisons et motivons
le concept de manière générale et nous le situons par rapport aux autres concepts
de structuration de programmes.
– Les sections 6.2 et 6.3 introduisent un modèle de calcul orienté objet avec le
concept de classe. Nous définissons un système à objets simple qui permet
l’héritage simple et multiple des classes avec des liens statiques et dynamiques.
Le système à objets utilise le typage dynamique pour combiner la simplicité et
la souplesse. Les classes sont des valeurs, les messages et les attributs sont des
entités de première classe et des portées arbitraires peuvent être programmées.
Cette souplesse nous permet de mieux explorer les limites de la POO et de
situer les langages existants par rapport à notre système à objets. Nous donnons
au système à objets une implémentation efficace et un soutien syntaxique pour
faciliter son usage.
Précédent

- 285/370

Suivant