Le Mercredi 20 Novembre 2002 17:11, Aurelien Mazurie a écrit :

>
>       Quel est l'avantage de la modélisation par objet ? (par rapport à un
> accès "plat" aux informations, via un ensemble de routines communes)
>


D'abord il faut bien préciser que ce "par rapport" ne signifie pas "contre" la 
programmation classique, mais que la programmation objet lui apporte quelque 
chose en plus. Que quelqu'un qui ne sait pas programmer de façon classique ne 
saura pas non plus programmer en objet.

En effet, en programmation objet, l'action elle même reste un ensemble de 
if... then... while, for etc. Rejeter la programmation classique revient à 
avoir de beaux objets qui ne font rien.

Ensuite, parler de la programmation classique comme une suite de "accés plats" 
aux informations revient à la réduire à la plus horrible tradition des 
fichiers shells ou visual basic réalisés sur le gaz. Je crois qu'il vaut 
mieux parler de programmation "structurée".

Et, dans beaucoup de cas, les "bibliothèques" de la programmation structurée 
ressemblent fort aux "objets" de la programmation objet.

Mais dans la programmation classique - que l'on appellera donc, s'il vous 
plait, la programmation structurée - la notion de "bibliothèque" est une 
sorte de verrue, et se réduit souvent à la notion de "importation". La 
programmation objet lui donne une présence explicite dans le language.

A partir du moment où ils sont explicites, ces modules peuvent avoir plus 
facilement une existence, donc devenir des "classes, des "objets", avoir un 
"cycle de vie", des "enfants", etc. Toutes choses difficiles, mais pas 
impossible, à réaliser en programmation classique. 

Par exemple en Java on a :

soleil.brille("10h du matin", "16h");

La "bibliotheque" créant l'objet "soleil" est explicite : c'est soleil. Son 
action est "brille" : là aussi c'est explicite.

En C, on aura : (de mémoire)

brille(soleil, "10h du matin", "16h");

L'action est "brille". Mais on ne sait pas si c'est "soleil, "10h du matin" ou 
"16h" qui doit briller. On ne sait pas non plus dans quel module elle se 
trouve. Pour le savoir il faut aller lire la doc.

Donc la programmation objet apporte EN PLUS à la programmation STRUCTUREE une 
meilleure modularisation du language.

On dit souvent que la programmation objet se calque sur les objets du monde 
réel. Là, j'en suis moins sûr. Le nom "programmation objet" est plutot faux, 
je trouve. Le nom "Programmation Structurée Modularisée" conviendrait 
mieux... PSM, c'est bien, non ?


-- 
SARL diaam informatique - 04 50 77 12 60
Ingenierie, développements de systèmes d'information
http://www.diaam-informatique.com


Répondre à