Qu'est-ce que le masquage de données en C++ ? Abstraction et encapsulation expliquées

Publié: 2021-05-24

Table des matières

Introduction au masquage de données

Les données sont le composant le plus sensible et le plus volatil d'un programme, qui, s'il est manipulé, peut entraîner une sortie incorrecte et nuire à l'intégrité des données. C'est là que la dissimulation des données s'avère essentielle. Dans le jargon technique, la dissimulation de données, également appelée dissimulation d'informations, est un mécanisme de programmation orienté objet (POO) inhérent permettant de masquer les détails internes de l'objet à l'utilisateur final.

L'objectif sous-jacent de la dissimulation des données est de dissimuler les données d'une classe à tout accès non autorisé et d'éviter toute pénétration inutile de l'extérieur de la classe. Le masquage des données garantit un accès limité aux données pour garantir l'intégrité des objets et empêcher les modifications involontaires ou intentionnelles du programme en question.

En termes simples, le masquage de données prend certaines parties d'un code de programme et les masque des membres de l'objet. Si un membre de l'objet tente d'accéder à des données masquées, le programme renverra une erreur. Il s'agit d'un mécanisme de mise en garde introduit pour s'assurer que le programmeur s'abstient de se connecter à des données erronées qui ont été cachées. Ce sont souvent les composants internes sans besoin prévisible du côté de l'utilisateur qui sont cachés.

Masquage de données, abstraction de données et encapsulation de données

Le masquage de données en C++ est étroitement corrélé à deux autres propriétés de la POO : l'abstraction et l'encapsulation.

Abstraction de données

L'abstraction de données est un mécanisme permettant d'exposer uniquement l'interface de programme pertinente à l'utilisateur final et de masquer les détails de mise en œuvre les plus complexes et les plus complexes. Prenons un exemple concret pour mieux comprendre. Pensez à votre télévision. Vous pouvez allumer et éteindre le téléviseur, changer de chaîne, régler son volume et ajouter des composants externes tels que des magnétoscopes, des lecteurs de DVD et des haut-parleurs. Mais vous ne connaissez pas les mécanismes internes de la télévision.

Vous ne savez pas comment il reçoit les signaux, les traduit et affiche enfin la sortie. Ainsi, la télévision est un bon exemple de la séparation entre la mise en œuvre interne et l'influence externe. Avec l'abstraction de données, l'implémentation de classe est protégée contre les erreurs involontaires et évolue en réponse à l'évolution des exigences ou des rapports de bogue sans interférence au niveau de l'utilisateur.

Encapsulation des données

L'encapsulation des données fait référence au regroupement des données et de leurs fonctions associées dans une seule unité appelée classe. En d'autres termes, si vous avez un attribut invisible de l'extérieur d'un objet et que vous le regroupez avec des méthodes qui lui fournissent un accès en lecture ou en écriture, vous pouvez masquer des informations délicates et réguler l'accès à l'état interne de la chose.

Par conséquent, selon les méthodes que vous implémentez, il vous incombe de décider si un attribut peut être lu et modifié ou s'il est en lecture seule ou pas visible du tout.

Différence entre le masquage de données et l'encapsulation de données

Dans la discussion sur la POO, le masquage de données et l'encapsulation de données sont souvent utilisés de manière interchangeable car ces deux notions coopèrent pour accomplir un portier objectif-auxiliaire commun d'informations sensibles. L'idée d'encapsulation de données est sans aucun doute fonctionnellement comparable à la dissimulation de données, mais comme elles fonctionnent à différents niveaux, elles sont structurellement différentes.

Bien qu'intrinsèquement liés les uns aux autres, il existe une différence cruciale entre le masquage de données et l'encapsulation de données.

  1. La principale différence entre le masquage et l'encapsulation des données est que le premier se concentre sur l'amélioration de la sécurité des données dans le programme, tandis que le second traite du masquage de la complexité du programme.
  2. Le masquage des données se concentre sur l'accessibilité d'un membre d'objet au sein d'une classe, tandis que l'encapsulation des données se concentre sur la manière dont les données sont accessibles et sur le comportement des différents objets. L'encapsulation est principalement réalisée par la dissimulation d'informations et pas seulement par la dissimulation d'informations. Cela signifie que le programmeur cache les structures du membre objet et cache l'implémentation de toutes ses méthodes.
  3. Alors que le masquage des données se concentre sur la restriction de l'utilisation des données dans un programme pour assurer la sécurité des données, l'encapsulation des données se concentre sur l'emballage (ou l'encapsulation) des données complexes pour présenter une vue plus simple à l'utilisateur.
  4. Dans le masquage de données, les données doivent être définies comme privées uniquement. Dans l'encapsulation de données, les données peuvent être publiques ou privées.
  5. Le masquage des données est à la fois un processus et une technique en soi, tandis que l'encapsulation des données est un sous-processus du masquage des données.

Spécificateurs d'accès

C++ prend en charge le masquage des données et, par extension, l'abstraction et l'encapsulation des données via la création de types définis par l'utilisateur, appelés classes. La portée des membres de cette classe créée est définie par des mots clés appelés spécificateurs d'accès. En règle générale, il existe trois types de spécificateurs de protection ou d'accès disponibles dans une catégorie - privé, protégé et public, utilisés pour créer les capacités d'encapsulation de la classe.

Les spécificateurs d'accès aident à définir comment les variables et les fonctions d'un type sont accessibles depuis l'extérieur de la classe. Habituellement, les données d'une classe sont privées pour éliminer les cas de manipulation accidentelle, et ses opérations sont publiques. Cependant, l'accessibilité au sein d'un rang n'est soumise à aucune restriction.

Variables/fonctions privées : ne sont accessibles qu'aux membres définis comme faisant partie de la classe.

Variables/fonctions publiques : accessibles de n'importe où dans le programme.

Variables/fonctions protégées Sont privées au sein d'une classe et ne sont disponibles que pour un accès à distance dans la classe dérivée.

Application de la dissimulation des données

Pour mieux comprendre le masquage de données, considérons l'exemple suivant. Considérant que vous êtes le programmeur, supposons que vous déclariez une classe sous le nom de "CheckAccount", dans laquelle vous avez défini un membre de données par le terme "Balance", qui fait référence au solde du compte bancaire d'un utilisateur.

Dans cet exemple particulier, le membre de données 'Balance' est une information sensible. Bien que vous puissiez offrir un accès à une application extérieure pour afficher ces informations sensibles, selon toute vraisemblance, vous ne laisserez pas cette application extérieure modifier les attributs des données stockées dans le solde du membre. Ce résultat peut être obtenu en masquant les données et, plus précisément, est contrôlé par l'utilisation du spécificateur d'accès privé.

  1. Le masquage de données est généralement exécuté sur des données imprévisibles et délicates. Ce type de données est fondamental pour exécuter un programme de manière efficace et rapide. En raison d'un accès indu, les modifications de données qui en résultent sont permanentes et nécessitent une refonte complète de la part du programmeur avant toute utilisation ultérieure.
  2. Le masquage des données aide à protéger les membres de la classe contre les oublis involontaires. Une classe comprend généralement divers champs connexes qui doivent être dans un état fiable. Supposons qu'un programmeur soit autorisé à contrôler directement n'importe lequel de ces champs. Dans ce cas, il est possible que vous transformiez une zone sans modifier les champs connexes critiques, laissant votre classe dans un état conflictuel.

Avantages de la dissimulation des données

Les avantages du masquage des données sont multiples :

  1. Il est utilisé pour réduire l'imprévisibilité et la complexité des données.
  2. Cela améliore la réutilisabilité du programme.
  3. En limitant les interdépendances entre les composants logiciels, réduit également la complexité du système pour une robustesse accrue.
  4. Masque la conception du stockage physique des données. Cela aide à définir clairement l'interface, améliore la lisibilité et la compréhensibilité.
  5. Il fournit une assurance des données contre la corruption et l'accès injustifié. En d'autres termes, il aide à dissimuler des données importantes, garantissant ainsi des protocoles de sécurité renforcés contre les pirates. Si toutes les données internes devaient être rendues publiques, les pirates pourraient facilement pénétrer dans les données internes et apporter des modifications malveillantes pour altérer le fonctionnement du programme. Le masquage des données rend beaucoup plus difficile le déchiffrement du code car les données cachées apparaîtront invisibles aux membres extérieurs de la classe et, par conséquent, au pirate.
  6. Les classes encapsulées sont simples, faciles à gérer et facilitent le développement futur de l'application.

L'inconvénient de la dissimulation des données

Le seul inconvénient du masquage des données est le codage supplémentaire. Le masquage des données oblige les programmeurs à écrire des codes plus longs pour créer l'effet souhaité dans les données cachées.

Apprenez des cours de génie logiciel en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Conclusion

La dissimulation de données s'apparente à un jeu de roulette russe. À la roulette russe, seul un trou sur six a une balle. Imaginons que le tir soit une menace perceptible pour les données. Seriez-vous prêt à tenter votre chance ? Il peut exister cinq scénarios qui jouent en votre faveur, mais pouvez-vous identifier précisément la menace ? La réponse est non. Tous les scénarios portent un fardeau probabiliste égal de suspicion et de peur. Au lieu de céder à cette incertitude, prenez position contre les menaces liées aux données. Allez sous couverture avec la dissimulation des données.

Si vous souhaitez en savoir plus sur Java, les OOP et le développement de logiciels à pile complète, consultez le programme Executive PG de upGrad & IIIT-B en développement de logiciels à pile complète qui est conçu pour les professionnels et offre plus de 500 heures de formation rigoureuse, Plus de 9 projets et affectations, statut d'ancien de l'IIIT-B, projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.

Qu'est-ce que l'encapsulation dans la programmation orientée objet ?

L'encapsulation est un moyen de lier les données et le code qui opère sur les données. Il s'agit d'un mécanisme utilisé pour masquer les détails d'implémentation des données tout en exposant l'abstraction des données au monde extérieur. Le processus de masquage d'informations derrière une interface bien définie est appelé encapsulation. L'encapsulation est un concept puissant de la programmation orientée objet. C'est le processus de cacher les données internes et les opérations d'un objet du monde extérieur en créant des fonctions d'accès.

Qu'est-ce que l'abstraction dans la programmation orientée objet ?

L'abstraction est une technique utilisée dans la programmation orientée objet pour séparer les interfaces des classes des détails d'implémentation de chaque objet individuel. Cela signifie que le code peut être modifié sans altérer le code qui utilise la classe. Dans la programmation orientée objet (POO), une abstraction représente un objet qui peut être manipulé, mais pas explicitement défini. L'abstraction est une partie importante de la POO ; c'est le processus de séparation de l'interface d'une classe de l'implémentation de ses méthodes.

Comment les classes et les objets interagissent-ils dans la programmation orientée objet ?

Les classes et les objets sont à la base de la programmation orientée objet (OO). La programmation orientée objet est un paradigme de programmation qui utilise des objets et des classes pour modéliser le monde réel. Une classe est un plan ou un modèle. C'est une description ou une spécification de ce qu'un objet devrait être. Il définit les caractéristiques, les comportements et les données d'un type particulier d'objet. Les objets sont des instances ou des exemples d'une classe. Chaque objet d'un programme peut être classé en une ou plusieurs classes. Une classe peut hériter des propriétés, méthodes et autres caractéristiques d'une autre classe. C'est ce qu'on appelle l'héritage.