Différence entre abstraction et encapsulation

Abstraction et Encapsulation sont des concepts de base de programmation orientée objet (OOP) qui vous permettent d'implémenter des objets du monde réel dans des programmes et des codes. Bien que les deux vont de pair, ils sont très différents les uns des autres. Bien que chaque méthode soit une encapsulation, c'est aussi une abstraction. En termes simples, lorsque vous associez différentes choses pour créer une entité, vous créez en fait un concept - un abstrait. Bien que les deux soient techniquement indissociables, ils n’ont littéralement rien en commun. Il est presque vrai que chaque encapsulation est une abstraction car ils cachent tous les deux quelque chose, mais ils ont leur juste part de différences..

Qu'est-ce que l'abstraction??

L'abstraction est un concept de base de la programmation orientée objet qui se concentre uniquement sur les données pertinentes d'un objet et cache tous les détails non pertinents qui peuvent ou non être destinés à un comportement générique ou spécialisé. Il cache les détails de l'arrière-plan 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 permettant de gérer la complexité. L'abstraction se concentre sur les idées plutôt que sur les événements. Il masque les détails au niveau de la conception en fournissant des fonctionnalités aux utilisateurs. L'objet résultant peut également être appelé une abstraction. Le programmeur s'assure que l'entité nommée aura tous les aspects essentiels inclus et aucun des aspects non pertinents..

Prenons un exemple concret d'abstraction. Prenons 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 détails de votre voiture ou quelle partie est en panne. Vous ne vous souciez pas vraiment de ces choses; vous voulez simplement que votre véhicule retrouve son état d'origine sans vous soucier des détails. Donc, vous avez réellement dit au mécanicien ce que vous voulez en séparant la partie mise en œuvre. C'est de l'abstraction. Vous vous êtes concentré sur l'essentiel, à savoir réparer votre voiture plutôt que sur les détails.

Qu'est-ce que l'encapsulation??

L'encapsulation est un autre concept POO qui lie les données et les fonctions dans un seul composant tout en limitant l'accès à certains composants. C'est l'un des principaux concepts fondamentaux de la programmation orientée objet qui englobe les données et les informations dans une seule unité. En termes techniques, encapsulation signifie masquer des attributs pour protéger les variables des accès extérieurs afin que les modifications apportées à une partie d'une application n'affectent pas les autres. Au contraire, en rendant les informations plus ouvertes, vous risquez une mauvaise utilisation des données. Il fournit une intégrité de base aux données en les 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 du périphérique sans vous soucier des détails d'implémentation tels que le type de capteurs dont dispose la souris, avec ou sans fil, etc. Chaque détail décrit la souris, mais quels que soient les détails, il ne s'agit que d'une souris. Vous avez juste besoin d'une interface pour utiliser la souris, qui dans ce cas est le pointeur de la souris. C'est encapsulation.

Différence entre abstraction et encapsulation

Bien que les deux soient des concepts fondamentaux liés à la programmation orientée objet et techniquement indissociables, ils présentent encore leurs différences sous de nombreux aspects..

  1. Différences dans la «définition» de l'abstraction et de l'encapsulation - L'abstraction est un concept fondamental de programmation orientée objet qui met l'accent sur tous les aspects essentiels d'un objet en masquant les détails non pertinents pour accroître l'efficacité et éliminer la complexité. L’encapsulation, quant à elle, est un mécanisme de masquage de données qui enveloppe les données et les informations dans une capsule afin de limiter l’accès depuis le monde extérieur..
  2. Différences de «fonctionnalité» d'abstraction et d'encapsulation- L'abstraction est un mécanisme de masquage de données qui met en évidence uniquement les fonctionnalités essentielles pour simplifier les programmes complexes. L'encapsulation, quant à elle, est une méthode permettant de lier des données et des codes à 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 d'une classe et d'une 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 des 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 comment. L'encapsulation masque les mécanismes internes du comment. 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 sous-jacent car les données sont encapsulées..
  5. Différences dans «l'exemple» d'abstraction et d'encapsulation - Prenons un exemple de smartphone. Vous savez ce qu'il fait mais vous ne savez 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 internes. Ici, smartphone est un résumé dans lequel les détails de la mise en œuvre interne sont encapsulés..

Abstraction vs Encapsulation avec le tableau de comparaison

Abstraction Encapsulation
Il traite uniquement des détails pertinents en masquant les éléments non pertinents pour réduire la complexité et accroître ainsi l'efficacité.. Il lie les données et les informations en une seule entité pour protéger les données des sources externes..
Il fait référence à 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 limiter les accès indésirables.
Il se concentre sur quoi plutôt que comment. 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. L'information est cachée à l'intérieur d'une capsule pour un accès rapproché.
Il traite d'idées plutôt que d'événements. L'idée est de protéger les données du monde extérieur.
Il est implémenté en utilisant une classe abstraite et une interface. Il est implémenté à l'aide de modificateurs d'accès protégés, privés et paquet-privés..

Résumé

Bien que les deux soient des concepts de POO liés à la dissimulation de données, ils sont assez différents les uns des autres. L'abstraction concerne également le fait de se cacher comme une encapsulation, mais si la première dissimule la complexité, la seconde conserve les données qu'elle encapsule en contrôlant l'accès à ces dernières. L'abstraction fait référence au concept de ne représenter que les caractéristiques nécessaires en masquant les détails non pertinents pour réduire la complexité d'une application, augmentant ainsi l'efficacité. L'encapsulation, quant à elle, fait référence au concept de masquage de tous les mécanismes internes d'un programme afin de protéger les informations des accès non désirés. Il lie les données et les informations dans un seul composant en limitant l'accès aux autres composants..