Encapsulation vs abstraction
L'encapsulation et l'abstraction sont deux concepts différents mais connexes trouvés dans les langages OOP (programmation orientée objet). L'encapsulation est le concept de combinaison de données et de comportements en tant qu'entité unique. D'un autre côté, l'abstraction est le processus de présentation de la façon dont une entité se comporte \ ressemble à la façon dont elle est mise en œuvre.
Qu'est-ce que l'encapsulation?
L'encapsulation est le processus d'emballage des données et de fonctionnement qui fonctionnent sur eux dans une seule entité. Cela signifie essentiellement que pour accéder aux données, certaines méthodes prédéfinies doivent être utilisées. En d'autres termes, les données encapsulées ne sont pas directement accessibles. Cela garantit que l'intégrité des données est conservée car l'utilisateur n'est pas en mesure d'accéder directement et de modifier les données comme il le souhaite. Les utilisateurs obtiendront ou définiront les valeurs de données uniquement via les méthodes accessibles au public pour les utilisateurs. Ces méthodes fournissent généralement une validation des données afin que seules les données du format appropriées soient autorisées à être insérées dans les champs. Par conséquent, les avantages de l'encapsulation sont trois. Grâce à l'encapsulation, le programmeur peut créer des champs d'une classe en lecture seule ou écrire uniquement. Deuxièmement, une classe peut avoir un contrôle total sur ce qui est stocké dans ses champs. Enfin, les utilisateurs d'une classe n'ont pas à s'inquiéter de la façon dont ses données sont stockées. En Java, le programmeur peut déclarer toutes les variables d'instance privées et fournir des méthodes GET et définir (qui sont publiques) pour accéder et modifier les champs privés.
Qu'est-ce que l'abstraction?
L'abstraction est le processus de séparation des détails de présentation des détails de l'implémentation. Cela est fait pour que le développeur soit soulagé des détails de mise en œuvre plus complexes. Au lieu de cela, le programmeur peut se concentrer sur la présentation ou les détails comportementaux de l'entité. En termes simples, l'abstraction se concentre sur la façon dont une certaine entité peut être utilisée plutôt que sur la façon dont elle est mise en œuvre. L'abstraction masque essentiellement les détails de la mise en œuvre, de sorte que même si la méthodologie de mise en œuvre change avec le temps, le programmeur n'aurait pas à s'inquiéter de la façon dont cela affecterait son programme. Un système peut être abstrait en plusieurs couches ou niveaux. Par exemple, les couches d'abstraction de bas niveau révélent des détails matériels, tandis que l'abstraction de haut niveau ne fera que révéler la logique métier de l'entité. Le terme abstraction peut être utilisé pour se référer à la fois à une entité et à un processus, ce qui entraîne une certaine confusion. En tant que processus, l'abstraction signifie extraire les détails essentiels tout en ignorant les détails insentiaux d'un élément ou d'un groupe d'éléments, tandis qu'en tant qu'entité, l'abstraction signifie un modèle ou une vue d'une entité avec uniquement les détails essentiels. En Java, le programmeur peut utiliser le résumé des mots clés pour déclarer une classe en tant qu'entité abstraite, qui représente les caractéristiques de définition essentielles d'une entité du monde réel.
Quelle est la différence entre l'encapsulation et l'abstraction?
Même si l'encapsulation et l'abstraction sont des concepts hautement liés dans les langages de programmation orientés objet, ils ont des différences clés. L'abstraction est une technique, ce qui nous aide à identifier ce qui devrait être visible et ce qui doit être caché. L'encapsulation est les techniques d'emballage des informations telles qu'elle rend visible ce qui doit être visible et cache ce qui doit être caché. En d'autres termes, l'encapsulation peut être identifiée comme un pas au-delà de l'abstraction. Alors que l'abstraction réduit un objet du monde réel à ses caractéristiques de définition essentielles, l'encapsulation étend cette idée en modélisant et en liant cette fonctionnalité de cette entité.