Différence entre abstraction et encapsulation

Différences clés entre l'abstraction et l'encapsulation

  • L'abstraction affiche uniquement les données utiles en fournissant les détails les plus nécessaires, tandis que l'encapsulation encapsule le code et les données pour les informations nécessaires.
  • L'abstraction se concentre principalement sur ce qui doit être fait, tandis que l'encapsulation se concentre sur la manière dont cela doit être fait.
  • L'abstraction masque la complexité en vous donnant une image plus abstraite, tandis que l'encapsulation masque le travail interne afin que vous puissiez le modifier ultérieurement.
  • L'abstraction vous aide à diviser le programme en plusieurs parties indépendantes, tandis que l'encapsulation est facile à modifier en fonction de nouvelles exigences.
  • En comparant l'encapsulation et l'abstraction, l'abstraction résout les problèmes au niveau de la conception tandis que l'encapsulation résout les problèmes au niveau de la mise en œuvre.
  • L'abstraction masque les détails non pertinents trouvés dans le code, tandis que l'encapsulation aide les développeurs à organiser facilement l'intégralité du code.
Différence entre abstraction et encapsulation
Différence entre abstraction et encapsulation dans Java

Définition de l’abstraction

L'abstraction est un concept de POO qui se concentre uniquement sur les données pertinentes d'un objet. Il masque les détails de l'arrière-plan et met l'accent sur les points de données essentiels pour réduire la complexité et augmenter l'efficacité. Il ne conserve généralement que les informations les plus pertinentes pour ce processus spécifique. Abstraction La méthode se concentre principalement sur l’idée plutôt que sur le fonctionnement réel.

Définition de l’encapsulation

L'encapsulation est une méthode permettant de rendre un système complexe plus facile à gérer pour les utilisateurs finaux. L'utilisateur n'a pas à se soucier des détails internes et des complexités du système. Encapsulation est un processus consistant à regrouper les données et le code qui opèrent sur les données dans une seule entité. Vous pouvez le considérer comme un wrapper de protection qui arrête l’accès aléatoire au code défini en dehors de ce wrapper.

Abstraction vs encapsulation
Abstraction vs encapsulation

Différence entre abstraction et encapsulation

Voici la principale différence entre l'abstraction et l'encapsulation :

Paramètres Abstraction Encapsulation
Utiliser pour L'abstraction résout le problème et les questions qui se posent au stade de la conception. L'encapsulation résout le problème et les problèmes qui surviennent au stade de la mise en œuvre.
Focus L'abstraction vous permet de vous concentrer sur ce que fait l'objet plutôt que sur la façon dont il le fait L'encapsulation vous permet de masquer le code et les données dans une seule unité pour sécuriser les données du monde extérieur.
Implantation Vous pouvez utiliser l'abstraction en utilisant Interface et Abstract Class. Vous pouvez implémenter l'encapsulation à l'aide de modificateurs d'accès (public, protégé et privé.)
Se concentre Concentrez-vous principalement sur ce qui doit être fait. Concentrez-vous principalement sur la manière dont cela doit être fait.
Application Au niveau de la conception. Au niveau de la mise en œuvre.

Pourquoi avez-vous besoin d'abstraction ?

Voici les principales raisons pour lesquelles l'abstraction est nécessaire pour la programmation orientée objet :

  • Vous aide à simplifier la représentation des modèles de domaine.
  • L'abstraction cache les détails non pertinents trouvés dans le code.
  • L'abstraction vous aide à diviser le programme en de nombreux concepts indépendants.
  • Offre la plus grande flexibilité lors de l'utilisation d'objets ADT (Abstract Data Type) dans différentes situations

Pourquoi avez-vous besoin de l'encapsulation ?

Les principaux avantages de l'encapsulation sont

  • Il améliore la maintenabilité d’une application.
  • Offre la flexibilité à l'utilisateur d'utiliser le système très facilement
  • Aide les développeurs à mieux organiser le code
  • Facilite le processus de codage global, car vous ne vous souciez que de ce que fait une autre classe, pas de la manière dont elle le fait
  • Cette méthode aide les développeurs à être plus « objectifs » et orientés vers les résultats.
  • Le code encapsulé est assez flexible et facile à modifier en fonction de nouvelles exigences.
  • L'encapsulation facilite les tests unitaires.
  • Il vous permet de réduire le couplage des modules et augmente la cohésion à l'intérieur d'un module, car tous les éléments d'un même élément sont encapsulés au même endroit.
  • L'encapsulation vous aide à modifier une partie du code sans affecter les autres parties du code.
  • Améliore la lisibilité du code de l'application
  • Sécurité améliorée et facilite la maintenance de l'application
  • L'interface d'encapsulation permet uniquement une interaction bien définie.

Exemple d'abstraction

Supposons que vous souhaitiez créer une application bancaire et que l’on vous demande de collecter toutes les informations sur votre client. Il y a des chances que vous obteniez les informations suivantes sur le client.

Exemple d'abstraction en POO
Exemple d'abstraction en POO

Mais toutes les informations ci-dessus ne sont pas requises pour créer une application bancaire.

Vous devez donc sélectionner uniquement les informations utiles pour votre application bancaire dans ce pool. Les données telles que le nom, l'adresse, les informations fiscales, etc. ont du sens pour une application bancaire.

Exemple d'abstraction en POO
Exemple d'abstraction en POO

Puisque nous avons récupéré/supprimé/sélectionné les informations client dans un pool plus grand, le processus est appelé abstraction.

Cependant, les mêmes informations, une fois extraites, peuvent être utilisées pour un large éventail d’applications. Par exemple, vous pouvez utiliser les mêmes données pour une candidature à l'hôpital, une candidature sur un portail d'emploi, une base de données gouvernementale, etc. avec peu ou pas de modifications. Par conséquent, cela devient vos données de base. C'est un avantage de l'abstraction.

Exemple d'encapsulation

Prenons un exemple d'appareil mobile. À l'aide d'appareils mobiles, vous pouvez exécuter diverses fonctions telles que prendre une photo, envoyer un message, enregistrer de la vidéo/audio, accéder au Web et bien plus encore.

Les fonctionnalités mentionnées ci-dessus sont des fonctionnalités de la plupart des smartphones. Cependant, vous n'avez pas besoin de comprendre les détails du fonctionnement interne de ces fonctionnalités avant d'utiliser ce programme. Par exemple, vous n'avez pas besoin de savoir comment votre appareil photo calcule la correction gamma ou identifie un visage humain dans une image. Il vous suffit d'apprendre l'interface du logiciel. C'est de l'encapsulation.