Ecrivez-nous
|
programmation objet
programmation objet, modèle de programmation qui se démarque des modèles classiques, tels que la programmation impérative ou fonctionnelle, en cherchant à décomposer de manière structurelle les programmes en entités — appelées objets — qui possèdent un état (des variables) et un comportement (des fonctions appelées méthodes).
La définition d'un objet passe par la création de sa classe. Une classe permet de construire des instances, c'est-à-dire des objets ayant chacun leur état propre (une copie des variables déclarées dans la classe), mais partageant le même comportement. Les objets peuvent communiquer par envoi de message à d'autres objets, et ne peuvent accéder directement qu'à leur propre état, c’est ce qu’on appelle l’encapsulation : pour connaître l'état d'un autre objet, ils doivent faire une requête à ce dernier. En outre, il existe un mécanisme d’héritage entre les classes. Ainsi, une classe peut posséder, en plus de ses propres variables et méthodes, celles définies dans d’autres classes. Ce principe très puissant permet d’éviter d'avoir à réécrire des portions de codes déjà existantes.
L'apparition de la programmation objet est liée à deux types de besoins bien distincts. Le premier vient de l’intelligence artificielle, où se pose la question de la représentation des connaissances. C'est le chercheur américain Marvin Minsky qui, avec sa théorie des cadres, a jeté les bases de cette approche en refusant une organisation monolithique des programmes et en préférant une approche distribuée sous la forme d'une société d’agents. Le second besoin est économique : le coût d'une ligne de programmation augmente de manière exponentielle lorsqu'elle doit être modifiée ou corrigée. Le besoin d'avoir des programmes de plus en plus faciles à maintenir s'est donc fait sentir. Or, le mécanisme d’héritage permet de n’écrire qu’une seule fois un algorithme, et en cas de modification ultérieure, d’avoir à n’intervenir qu’en un seul endroit du programme. Le coût de l’instruction s’en trouve considérablement réduit.
Les langages de la programmation objet vont des plus « purs » comme Smalltalk ou Java aux langages hybrides, qui autorisent une conception mélangeant des classes et des fonctions (au sens traditionnel) comme le C++, le Fortran objet, ou le Pascalobjet. |