9
votes

Différence de cachette d'informations et d'abstraction de données?

Y a-t-il une différence dans l'abstraction de données et la masquage d'informations? Après avoir passé toutes les réponses dans ce lien, je suis plus confus. abstraction VS Informations Cachée VS encapsulation Ne pouvait trouver aucune différence. Est-ce juste que nous pouvons appeler une (info cachette) comme objectif et l'autre (abstraction) en tant que processus? Mais ce n'est pas une différence satisfaisante pour moi. En outre, j'ai eu cette encapsulation est la technique pour mettre en œuvre le processus d'abstraction que je suis ici? S'il vous plaît expliquer la différence exacte.


0 commentaires

5 Réponses :


1
votes

"Cachée d'informations" est une partie importante de "abstraction de données", mais pas du concept entier.

Et rappelez-vous: vous pouvez (et devrait) avoir des "cachettes d'informations" dans le code de procédure (comme "N'utilisez pas de globaux", etc. en Fortran ou basique) - mais vous n'aurez pas non plus besoin d'un "type de données abstraite" .

Informations cachées et Types de données abstraites sont étroitement liés, mais ce sont des concepts différents.


0 commentaires

0
votes

Une classe cache normalement ses détails de mise en œuvre de ses clients. Cela s'appelle des informations cachées. En créant des interfaces, nous invocons les informations concept de masquage ...

Exemple de cachette de l'information est en dessous ... Nous avons une interface dans notre fichier d'en-tête ... xxx

et la mise en œuvre de fonctions dans un autre fichier "coder.cpp" est ... xxx

plutôt TAHN faisant ci-dessus dans deux fichiers (un en-tête + un fichier CPP), nous aurions pu le faire à une seule place. nous aurions pu donner une définition du constructeur et de la fonction d'impression dans le fichier d'en-tête lui-même ... xxx

Si nous avons fait cela, nous n'avons pas pu mettre en œuvre des informations cachées ... et notre Le client saura comment nous avons implémenté nos fonctions!

pour l'absaction de données que vous pouvez envisager ... Exemple de piles ...

Un client d'une classe de pile n'a pas besoin d'être concerné par la mise en œuvre de la pile. Le client ne sait que lorsque lorsque les éléments de données sont placés dans la pile, ils seront rappelés dans l'ordre de première sortie. Le client se soucie de la fonctionnalité d'une pile offrant, non de la manière dont cette fonctionnalité est mise en œuvre. Ce concept est appelé abstraction de données.


0 commentaires

3
votes

La dissimulation de données est le processus par lequel les modificateurs d'accès sont utilisés pour masquer la visibilité des méthodes et des variables Java. Ils accèdent aux modificateurs sont: public, privé et protégé.

L'abstraction est le processus par lequel nous définissons un comportement spécifique par des haricots de classes abstraits et de méthodes qui forment le squelette pour toute classe qui prolongerait cette classe.


0 commentaires

6
votes

Information Cachée est lorsque le concepteur décide spécifiquement de limiter l'accès aux détails d'une implémentation. C'est un principe qui est plus ancien que la conception orientée objet, mais est souvent utilisé.

Un exemple simple est la définition des constantes en C, par exemple, #define name_size 15 Le code (clients) de la constante n'a pas besoin de connaître sa valeur et ne sera pas troublé si vous (le concepteur) décider de changer sa valeur plus tard. Ils ne devraient pas faire des hypothèses sur le fait que c'est vraiment 15, car vous pourriez décider de le changer.

abstraction est lorsque vous avez affaire à un agrégat, par exemple une voiture est une abstraction de détails tels qu'un châssis, un moteur, des roues, etc. Les abstractions nous permettent de penser à des choses complexes dans une manière plus simple.

encapsulation est la manière dont nous décidons du niveau de détail des éléments comprenant nos abstractions. Une bonne encapsulation applique des informations qui se cachent pour appliquer des limites des détails. Par exemple, ma voiture est comprise en réalité de toutes ses parties, mais elle ne me fournit que (le pilote) une interface qui convient à mes besoins et non plus. Je peux contrôler les portes, les serrures, les fenêtres, les lumières, la corne, le toit ouvrant, la direction du mouvement, accélérer, décélérer, etc. Même si je pouvais être curieux de manipuler les détails de la "Comment" de toutes ces choses, l'encapsulation empêche moi de voir plus.

Si la mise en œuvre de ma voiture change (je passe d'un moteur de combustion à un moteur électrique ou hybride), car je ne connais que l'interface limitée, je n'ai pas besoin de changer la façon dont je conduis la voiture. L'abstraction me permet de savoir simplement que je conduisais une voiture, au lieu de centaines de morceaux de métal, de caoutchouc, etc.

Un exemple d'où la cachette d'informations était pas une partie d'une voiture pourrait être un Vanve de starter . Mes parents m'ont dit comment ceux-ci travaillaient dans les voitures qu'ils ont conduit ... c'était un détail de moteur de combustion, qui ne serait pas utile dans une voiture électrique.


0 commentaires

0
votes

L'abstraction est la représentation de quelque chose avec moins de détails (comme dans une peinture abstraite). Dans OO, un type de résumé peut être manipulé sans s'engager dans sa représentation interne. Par exemple, le numéro de téléphone sous forme d'abstraction d'un numéro de téléphone peut être utilisé sans le client sachant qu'il consiste en un code de pays, de l'indicatif régional et du nombre réel. L'abstraction est particulièrement utile dans la phase d'analyse et de conception, car elle vous permet de parler en termes de type de données abstraite (par exemple, numéro de téléphone) sans avoir à vous inquiéter de la manière dont elle sera mise en œuvre.

Un type plus familier, chaîne est une abstraction de texte: vous manipulez chaîne sans savoir comment il est implémenté. L'abstraction de chaîne permet à ses internes d'être modifiés sans affecter son utilisation dans une conception d'applications.

La cachette des informations et l'encapsulation sont de deux manières dans lesquelles un type de données abstraite pourrait être mis en œuvre. Un type de données abstraite peut ne même pas avoir à cacher son état interne ou son encapsulation; Par exemple, le nombre d'abstraction peut être implémenté comme un int .


0 commentaires