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