encapsulation vs abstraction exemple réel du monde

Pour un exemple d’encapsulation, je peux penser à l’interaction entre un utilisateur et un téléphone portable. L’utilisateur n’a pas besoin de connaître le fonctionnement interne du téléphone portable pour fonctionner, donc cela s’appelle l’abstraction. Mais où l’encapsulation s’intègre-t-elle dans cet exemple? Quelqu’un pourrait-il s’il vous plaît faire la lumière sur cela?

L’encapsulation est un moyen d’obtenir une «dissimulation d’informations». Ainsi, selon votre exemple, vous n’avez pas besoin de connaître le fonctionnement interne du téléphone mobile pour fonctionner . Vous avez une interface pour utiliser le comportement du périphérique sans connaître les détails de l’implémentation.

L’abstraction de l’autre côté peut s’expliquer par la possibilité d’utiliser la même interface pour différents objects. Différentes implémentations de la même interface peuvent exister. Les détails sont masqués par l’ encapsulation .

Abstraction : vous n’achèterez jamais de “périphérique”, mais achetez toujours quelque chose de plus spécifique: iPhone, GSII, Nokia 3310 … Ici, iPhone, GSII et N3310 sont des choses concrètes, le périphérique est abstrait.

Encapsulation : vous avez plusieurs périphériques, tous ont un port USB. Vous ne savez pas quel type de circuit imprimé est de retour, il vous suffit de savoir que vous pourrez twigr un câble USB.

L’abstraction est un concept autorisé par l’encapsulation. Mon exemple n’était pas le meilleur (il n’y a pas de lien réel entre les deux blocs).

Vous pouvez faire de l’encapsulation sans utiliser d’abstraction, mais si vous voulez utiliser une abstraction dans vos projets, vous aurez besoin d’une encapsulation.

En termes généraux, l’abstraction ne fait que cacher les éléments complexes d’une procédure particulière pour rendre la procédure simple.
Exemple: Monitor ON / OFF :: – L’utilisateur n’a pas besoin d’en savoir plus sur le fonctionnement des puces lorsque Monitor est activé ou désactivé. Tout ce qu’il doit savoir est Activé Fonction ON-Monitor est activé et désactivé la fonction OFF-Monitor est éteinte …

Ou mieux Cherchez une voiture – Tout le monde sait qu’il existe une machine à engrenages spéciale qui change la vitesse, personne ne prend la peine de savoir ce que toutes les fonctionnalités subissent pour changer de vitesse. Donc, c’est l’abstraction (éviter les implémentations indésirables pour éviter la complexité).

Ainsi, si un développeur fournit une bonne abstraction, les utilisateurs ne seront pas tentés de consulter les mécanismes internes de l’object.

L’abstraction est obtenue en faisant en sorte qu’un résumé de classe ait une ou plusieurs méthodes abstraites. Ce qui n’est rien d’autre qu’une caractéristique essentielle qui devrait être mise en œuvre par la classe qui l’étend. eg lorsque vous inventez / concevez une voiture, vous définissez des caractéristiques telles que la voiture doit avoir 4 portes, casser, volant, etc. La mise en œuvre n’est pas la tête de l’abstraction. Il définira simplement les caractéristiques à inclure.

L’encapsulation empêche un utilisateur de suivre une procédure particulière pour accéder au contrôle d’un processus particulier. Il fournit simplement la sécurité et garantit la robustesse du système.

Exemple: nous pouvons considérer les ressources humaines dans une entreprise comme une personne qui travaille sur le principe de l’encapsulation .ie Nous ne pouvons pas parler directement aux autres services, nous devons communiquer via eux par le biais des ressources humaines.

Ensemble, nous pouvons prendre l’exemple d’un UNDER CONSTRUCTION BUILDING.. où nous pouvons dire que des choses comme ‘non. des gestionnaires requirejs, types de matériaux, nombre de travailleurs, etc.

Mais, en même temps, l’inclusion de tous ces domaines dans un ENTREPRENEUR qui joue le rôle de médiateur entre les travailleurs et l’investisseur peut être considérée comme une encapsulation. Comme, il cache toutes les propriétés ci-dessus dans une seule entité.

Donc, si vous aviez compris jusqu’à présent, vous pouvez dire que l’abstraction n’est qu’un sous-ensemble de ENCAPSULATION.ieEvery l’entité qui exécute l’abstraction est encapsulée en interne mais tout ce qui montre l’encapsulation ne doit pas toujours être une abstraction.

ex. .ToSsortingng() méthode définie dans presque toutes les classes est l’implémentation d’ Abstraction car nous n’avons pas la fonction interne. Tout ce qui compte, c’est qu’elle change presque tout en chaîne. Et comme elle assemble une unité, elle est encapsulée. Les membres privés que nous masquons et accédons par l’intermédiaire de Properties sont un exemple d’encapsulation uniquement dans la mesure où ils assurent essentiellement la sécurité des données .. !!

J’espère que ça répond à ta question..!!

L’encapsulation consiste à masquer les variables ou quelque chose à l’intérieur d’une classe, empêchant les parties non autorisées de l’utiliser. Les méthodes publiques telles que getter et setter y accèdent et les autres classes appellent ces méthodes pour y accéder.

L’abstraction implique la possibilité de définir des objects qui représentent des “acteurs” abstraits pouvant effectuer un travail, générer des rapports et modifier leur état, et “communiquer” avec d’autres objects du système.

Considérons l’exemple ci-dessous en temps réel:

Encapsulation : En tant que pilote, vous savez comment démarrer la voiture en appuyant sur le bouton de démarrage et les détails internes des opérations de démarrage vous sont masqués. Ainsi, tout le processus de démarrage vous est caché, sinon nous pouvons dire que le démarrage de l’opération est encapsulé par vous.

OU

La roue mosortingce est encapsulée dans le processus de rotation de la roue .

Abstraction :

Avant de parler de l’abstraction, nous pouvons prendre trois utilisateurs différents ici (je les appelle en tant qu’entité)

1) Vous 2) Mécanicien local 3) Expert

Vous Entité: Puisque vous ne savez que démarrer la voiture en appuyant sur un bouton et que toutes les autres opérations derrière la scène sont extraites de vous.

Entité Mécanicien Locale: Notre mécanicien local connaît certains aspects de la mise en route de la voiture, c.-à-d. Qu’il peut ouvrir le capot de la voiture et vérifier le câble de batterie ou la cale etc.

Entité Expert: Notre mécanicien expert (concepteur de la voiture) connaissant toutes les opérations de notre voiture, il peut le réparer très rapidement. Donc en bref Expert Entity connaît toutes les implémentations de la voiture.

Le fonctionnement de la voiture est complètement soustrait de vous et il est partiellement mis en œuvre pour l’entité mécanique locale et entièrement mis en œuvre pour une entité experte. Donc, vous êtes une classe abstraite n’ayant que des méthodes abstraites, Entité Mécanique Locale vous a étendu (depuis qu’il est également un utilisateur ordinaire) et il a implémenté certaines méthodes et notre entité expert a étendu le Mécanisme Local et implémenté toutes les méthodes .

Je pense que c’est un bon exemple.

Tout a beaucoup de propriétés et de comportements, donc prenez n’importe quel object que vous voulez TV, Mobile, Car, Human ou quoi que ce soit.

Abstraction:

  1. Processus de sélection de l’essence d’un object dont vous avez vraiment besoin
  2. En d’autres termes, choisissez les propriétés dont vous avez besoin dans l’object Exemple:
    une. TV – Son, Visuels, Entrée d’alimentation, Entrée des canaux.
    b. Mobile – Bouton / écran tactile, bouton d’alimentation, bouton de volume, port sim.
    c. Car – Steering, Break, Clutch, Accelerator, Key Hole.
    ré. Humain – Voix, Corps, Vision oculaire, Audition, Émotions.

Encapsulation:

  1. Processus de masquage des détails d’un object dont vous n’avez pas besoin
  2. En d’autres termes, masquez les propriétés et les opérations dont vous n’avez pas besoin à partir de l’object, mais elles sont requirejses pour que l’object fonctionne correctement. Exemple:
    une. TV – Interne et connexions du haut-parleur, affichage, composants de dissortingbution d’alimentation en noir et blanc, mécanisme de canal.
    b. Mobile – Comment les entrées sont analysées et traitées, en appuyant sur un bouton ou en modifiant les volumes, comment sim sera-t-il connecté aux fournisseurs de services.
    c. Car – Comment la direction tourne la voiture, Comment ralentir ou arrête la voiture, Comment fonctionne l’embrayage, Comment l’accélérateur augmente la vitesse, Comment le trou de la clé s’active / de la voiture.
    ré. Humain – Comment la voix est-elle produite? Qu’est-ce qui est à l’intérieur du corps? Comment la vue fonctionne-t-elle? Comment l’audition fonctionne

RÉSUMÉ tout ce dont vous avez besoin et ENCAPSULER tout ce dont vous n’avez pas besoin;)

La formulation de votre question est étrange – Abstraction vs Encapsulation? Ça devrait être – quelqu’un explique l’abstraction et l’encapsulation …

L’abstraction consiste à comprendre l’essence de la chose.

Un exemple concret est l’art abstrait. Les artistes de ce style essaient de capturer / peindre l’essence de la chose qui lui permet encore d’être la chose. Ce frottis brun de 4 lignes capture l’essence de ce qu’est un taureau.

L’encapsulation est la boxe noire.

Un téléphone portable est un excellent exemple. Je n’ai aucune idée de la façon dont le téléphone portable se connecte à un satellite, à une tour ou à un autre téléphone. Je n’ai aucune idée de la façon dont la foutue chose comprend mes touches ou comment elle prend et envoie des images à une adresse e-mail ou un autre numéro de téléphone. Je n’ai aucune idée des détails complexes de la plupart des fonctionnalités d’un téléphone intelligent moderne. Mais je peux l’utiliser! Les téléphones ont des interfaces standard (oui – littéralement et la conception de logiciel) qui permettent à quelqu’un qui comprend les bases de l’un d’utiliser presque tous.

Comment sont les deux liés?

Tant l’abstraction que l’encapsulation sont à la base de la pensée et du design orientés object. Donc, dans notre exemple de téléphone portable. La notion de smartphone est une abstraction dans laquelle certaines fonctionnalités et certains services sont encapsulés. L’iPhone et la galaxie sont des abstractions supplémentaires de l’abstraction de niveau supérieur. Votre iPhone ou Galaxy physique sont des exemples concrets de couches multiples d’abstractions contenant des fonctionnalités et des services encapsulés.

Abstraction signifie Nous nous concentrons sur les qualités essentielles de quelque chose plutôt que sur un exemple spécifique et nous rejetons automatiquement ce qui est sans importance ou non pertinent.

Exemple Nous écrivons une classe de compte bancaire, les qualités essentielles du compte bancaire sont la date d’ouverture, le titre du compte, le numéro de compte, le solde, etc.

Encapsulation Désigne l’idée de capsuler ou d’entourer quelque chose, non seulement pour garder le contenu ensemble, mais aussi pour protéger et restreindre l’access à la forme. Parallèlement au secret Il s’agit de réduire les dépendances entre les différentes parties de l’application.

Exemple Dans notre classe de compte bancaire Quelqu’un accédant à l’atsortingbut Balance et essayant de le changer, la tentative peut aboutir s’il n’y a pas d’encapsulation.

L’encapsulation aide à adhérer au principe de responsabilité unique et Abstraction aide à adhérer au code à l’interface et à ne pas l’implémenter.

Dites que j’ai un cours pour la voiture: Classe de fournisseur de service et classe de conducteur: Classe de consommateur de service.

Pour Abstraction: nous définissons une classe abstraite pour CAR et définissons toutes les méthodes abstraites qui sont disponibles dans la voiture comme: changeGear (), applyBrake ().

Maintenant, la voiture proprement dite (classe de béton, c’est-à-dire comme Mercedes, BMW mettra en œuvre ces méthodes à sa manière et abstraite). .

Pour Encapsulation: Maintenant, disons que Mercedes propose de nouvelles fonctionnalités / technologies: Anti Skid Braking, tout en implémentant la méthode applyBrake (), elle encapsulera cette fonctionnalité dans la méthode applyBrake () et assurera ainsi la cohésion. () de l’object de la voiture. Ainsi, l’encapsulation permet de poursuivre la même implémentation de classe concrète.