Definition

Abstraction

Abstraction, du latin ab, qui marque l'éloignement, et trahere, qui signifie tirer, est le processus qui sépare ou isole certaines caractéristiques d'une chose pour la réduire à ses caractéristiques essentielles.

L'abstraction est un des trois fondamentaux de la programmation orientée objet, avec l'encapsulation et l'héritage. En suivant ce processus d'abstraction, le développeur masque toutes les informations non pertinentes d'un objet à des fins de simplification et d'efficacité. Un peu comme dans une peinture abstraite, l'objet qui reste est une représentation de l'original sans détail parasite. L'objet final constitue une abstraction, autrement dit une entité nommée formée d'attributs sélectionnés et de comportements propres à un usage donné de l'entité d'origine. L'abstraction est liée à l'encapsulation et au masquage des informations.

Dans le processus d'abstraction, le programmeur cherche à nommer l'entité d'une manière qui ait un sens et à faire en sorte qu'elle conserve tous les aspects nécessaires - et uniquement ceux-là. Pour transposer l'abstraction dans le monde réel, on pourrait faire la comparaison suivante : vous (l'objet) avez rendez-vous au restaurant avec une personne inconnue et vous réfléchissez à ce que vous pourrez lui dire pour qu'elle vous reconnaisse. Vous décidez de lui donner des informations sur l'endroit où vous serez, votre taille, la couleur de vos cheveux et la couleur de votre veste. Toutes ces données participeront au bon déroulement de la procédure (votre localisation par votre interlocuteur). Vous devez inclure tous ces renseignements.

En revanche, beaucoup d'autres informations vous concernant sont inutiles dans ce cas de figure : votre numéro de carte d'identité, votre goût pour des films étranges et le rôle que vous avez joué dans le spectacle de fin d'année de CM2 n'aideront en rien votre interlocuteur à vous trouver. Toutefois, puisqu'une entité peut avoir plusieurs abstractions, peut-être serez-vous amené à les utiliser dans une autre procédure. 

Cette définition a été mise à jour en août 2016

Pour approfondir sur Outils de développement