Product Design, Manufacturing & Innovation Resources
Maison » Abstraction (programmation OOP)

Abstraction (programmation OOP)

1970
  • Barbara Liskov
Ingénieur logiciel codant des classes abstraites dans un environnement IDE moderne.

(Image générée à titre d'illustration uniquement)

Abstraction dans POO Le concept consiste à masquer les détails d'implémentation complexes et à ne présenter que les fonctionnalités essentielles de l'objet. Il met l'accent sur le fonctionnement de l'objet plutôt que sur la manière dont il le fait. Ceci est réalisé grâce aux classes abstraites et aux interfaces, qui définissent un modèle pour les autres classes sans fournir une implémentation complète, simplifiant ainsi les systèmes complexes.

L'abstraction est un processus de gestion de la complexité. En programmation, elle consiste à créer une représentation simplifiée d'un système ou d'un composant. Dans la POO, cela se fait principalement à l'aide de classes et d'interfaces abstraites. Une classe abstraite est une classe qui ne peut pas être instanciée seule et qui est destinée à être sous-classée. Elle peut contenir des méthodes abstraites (méthodes sans corps) que les sous-classes doivent implémenter. Une interface est un concept similaire, mais elle est purement abstraite ; elle ne peut définir que des signatures de méthodes, pas des implémentations. Une classe peut alors ‘implémenter’ une interface, promettant de fournir la fonctionnalité définie dans celle-ci.

Cela permet aux programmeurs de définir un contrat ou une API commune à laquelle plusieurs classes différentes peuvent adhérer. Par exemple, une interface ‘Storable’ pourrait définir des méthodes ‘save()’ et ‘load()’. Différentes classes telles que ‘Document’, ‘Image’ et ‘UserSettings’ pourraient toutes mettre en œuvre l'interface ‘Storable’, chacune fournissant sa propre logique d'enregistrement et de chargement. Le code qui travaille avec des objets ‘stables’ n'a pas besoin de connaître le type spécifique d'objet auquel il a affaire ; il doit seulement savoir qu'il peut appeler les méthodes ‘save()’ et ‘load()’. Cela permet de dissocier le code client des implémentations spécifiques, ce qui rend le système plus modulaire, plus flexible et plus facile à comprendre à un niveau élevé.

UNESCO Nomenclature: 1203
- Informatique

Taper

Système abstrait

Perturbation

Fondamentaux

Usage

Utilisation généralisée

Précurseurs

  • abstraction mathématique
  • le concept de sous-routines et de fonctions comme forme d'abstraction procédurale
  • théorie des types de données abstraits (ADT)
  • la nécessité de gérer la complexité des projets d'ingénierie à grande échelle

Applications

  • couches d'accès aux bases de données (DAL) qui masquent les requêtes SQL spécifiques
  • pilotes de périphériques faisant abstraction de la complexité matérielle du système d'exploitation
  • bibliothèques d'interface utilisateur graphique (GUI) fournissant des widgets de haut niveau
  • protocoles réseau comme HTTP faisant abstraction de la communication TCP/IP sous-jacente
  • la bibliothèque de modèles standard (stl) en C++

Brevets:

NA

Idées d'innovations potentielles

En raison du trafic généré par les robots de scraping, actuellement supérieur à 40 000 par jour, ce contenu est réservé aux membres de la communauté.
> Connexion < ou > Registre < (100% gratuit) pour y accéder, ainsi qu'à tous les autres contenus et outils à accès restreint.

Voir aussi : abstraction, interface, classe abstraite, API, dissimulation d'informations, complexité, OOP, contrat, découplage, modularité.

Contexte historique

Abstraction (programmation OOP)

1967
1967
1970
1970
1970
1970-01-01
1975-06-01
1960
1967
1970
1970
1970
1970
1973
1980

(si la date est inconnue ou non pertinente, par exemple « mécanique des fluides », une estimation arrondie de son émergence notable est fournie)

Inventions, innovations et principes techniques connexes

Les images en pleine résolution et les téléchargements sont uniquement disponibles, et 100% gratuits, pour les membres inscrits.