Différence entre l'abstraction et l'encapsulation

Différence entre l'abstraction et l'encapsulation

L'abstraction et l'encapsulation sont toutes deux des concepts de programmation de base orientés objets (OOP) qui vous permettent d'implémenter des objets du monde réel dans les programmes et les codes. Alors que les deux vont de pair, ils sont très différents les uns des autres. Alors que chaque méthode est une encapsulation, c'est aussi une abstraction. En termes simples, lorsque vous mettez différentes choses ensemble pour créer une entité, vous créez en fait un concept - un résumé. Bien que les deux soient techniquement inséparables, ils n'ont pas littéralement obtenu en commun. Il est presque vrai que chaque encapsulation est une abstraction car ils cachent tous les deux quelque chose, cependant, ils ont leur juste part de différences.

Qu'est-ce que l'abstraction?

L'abstraction est un concept OOP de base qui se concentre uniquement sur les données pertinentes d'un objet et cache tous les détails non pertinents qui peuvent être ou non pour un comportement générique ou spécialisé. Il cache les détails de fond et met l'accent sur les points essentiels pour réduire la complexité et augmenter l'efficacité. Fondamentalement, l'abstraction est un outil de programmation pour gérer la complexité. L'abstraction se concentre sur les idées plutôt que sur les événements. Il cache les détails sur le niveau de conception en fournissant des fonctionnalités aux utilisateurs. L'objet résultant peut également être appelé abstraction. Le programmeur s'assure que l'entité nommée aura tous les aspects essentiels inclus et aucune des non-pertinents.

Prenons un exemple du monde réel d'abstraction. Examinons le cas d'un véhicule qui, dans ce cas, est votre véhicule. Un mécanicien essaie de réparer votre voiture ou disons une partie spécifique de votre voiture. Ici, vous êtes l'utilisateur et vous ne voulez pas entrer dans les spécificités de votre voiture ou quelle partie s'est réellement cassée. Vous ne vous souciez pas vraiment de ces choses; Vous voulez juste que votre véhicule revienne dans son état d'origine sans vous soucier des détails. Donc, vous avez en fait dit au mécanicien ce que vous voulez en séparant la partie d'implémentation. C'est l'abstraction. Vous vous êtes concentré sur la chose la plus essentielle, qui consiste à réparer votre voiture, plutôt que de vous concentrer sur les détails.

Qu'est-ce que l'encapsulation?

L'encapsulation est encore un autre concept OOP qui lie les données et les fonctions en un seul composant tout en restreignant l'accès à certains composants. C'est l'un des principaux concepts fondamentaux de la POO qui enveloppent les données et les informations sous une seule unité. En termes techniques, l'encapsulation signifie de cacher des attributs pour protéger les variables de l'accès extérieur afin que le changement dans une partie d'une application ne affectera pas les autres parties. Au contraire, en rendant les informations plus ouvertes. Il fournit une intégrité de base aux données en la protégeant du monde extérieur. En termes simples, il cache les détails supplémentaires du monde extérieur.

Prenons un exemple de souris Bluetooth. Il vous suffit de connaître le comportement de l'appareil sans vous soucier des détails d'implémentation comme le type de capteurs de la souris, est-ce sans fil ou non, etc. Chaque détail décrit la souris mais quels que soient les détails, c'est juste une souris. Vous avez juste besoin d'une interface pour utiliser la souris, ce qui dans ce cas est le pointeur de la souris. C'est de l'encapsulation.

Différence entre l'abstraction et l'encapsulation

Bien que les deux soient des concepts fondamentaux liés à la POO et qu'ils sont techniquement inséparables, ils ont toujours leurs différences sous de nombreux aspects.

  1. Différences de «définition» de l'abstraction et de l'encapsulation - L'abstraction est un concept OOP fondamental qui met l'accent sur tous les aspects essentiels d'un objet en cachant les détails non pertinents pour augmenter l'efficacité et éliminer la complexité. L'encapsulation, en revanche, est un mécanisme de cachette de données qui enveloppe les données et les informations d'une capsule pour restreindre l'accès du monde extérieur.
  2. Différences de «fonctionnalité» d'abstraction et d'encapsulation- L'abstraction est un mécanisme de cachette de données qui met en évidence uniquement les caractéristiques essentielles pour simplifier des programmes complexes, tandis que l'encapsulation, en revanche, est une méthode de liaison des données et des codes en une seule entité. L'idée est de protéger les détails de la mise en œuvre de l'accès externe.
  3. Différences dans la «mise en œuvre» de l'abstraction et de l'encapsulation - L'abstraction est implémentée à l'aide de la classe et de l'interface abstraites, tandis que l'encapsulation est implémentée à l'aide de modificateurs d'accès. Cinq types de modificateurs sont utilisés pour encapsuler les données: privé, public, interne, protégé et protégé interne.
  4. Différences de «concept» d'abstraction et d'encapsulation- L'idée derrière l'abstraction est de se concentrer sur quoi plutôt que sur la façon dont. L'encapsulation cache la mécanique interne de la façon dont. Par exemple, lorsque vous conduisez une voiture, vous savez exactement ce que fait la pédale de frein, mais vous ne connaissez peut-être pas tout le mécanisme derrière car les données sont encapsulées.
  5. Différences dans «Exemple» d'abstraction et d'encapsulation - Prenons un exemple de smartphone. Tu sais ce que ça fait, mais tu ne sais peut-être pas comment il fait ce qu'il fait. Vous ne vous souciez que de l'écran d'affichage et des boutons du clavier plutôt que de vous soucier de ses circuits intérieurs. Ici, le smartphone est un résumé où les détails de l'implémentation intérieure sont encapsulés.

Abstraction vs. Encapsulation avec le tableau de comparaison

Abstraction Encapsulation
Il ne traite que les détails pertinents en cachant les non-pertinents pour réduire la complexité, ce qui augmente ainsi l'efficacité. Il lie les données et les informations ensemble en une seule entité pour protéger les données des sources externes.
Il se réfère à l'idée de cacher des données qui ne sont pas nécessaires à des fins de présentation. Il cache les données et le code afin de restreindre l'accès indésirable.
Il se concentre sur quoi plutôt que sur la façon dont. Il cache la mécanique interne de la façon dont il fait quelque chose.
Il cache les détails inutiles au niveau de la conception. Il cache également les détails mais au niveau de la mise en œuvre.
Les informations et les données sont séparées des données pertinentes. Les informations sont cachées à l'intérieur d'une capsule pour un accès rapproché.
Il traite des idées plutôt que des événements. L'idée est de protéger les données du monde extérieur.
Il est implémenté en utilisant la classe et l'interface abstraits. Il est implémenté à l'aide de modificateurs d'accès protégés, privés et-privés.

Résumé

Bien que les deux soient des concepts POO liés à la cachette des données, ils sont très différents les uns des autres. L'abstraction concerne également la cachette comme l'encapsulation, mais tandis que le premier cache la complexité, ce dernier conserve les données qu'elle résume en leur contrôlant l'accès. L'abstraction fait référence au concept de représentation uniquement des caractéristiques nécessaires en cachant les détails non pertinents pour réduire la complexité d'une application, ce qui augmente ainsi l'efficacité. L'encapsulation, en revanche, fait référence au concept de cacher toutes les mécanismes internes d'un programme afin de protéger les informations de l'accès indésirable. Il lie les données et les informations dans un seul composant en restreignant l'accès à d'autres composants.